Merge branch 'ptp_7_0'
diff --git a/core/org.eclipse.ptp.core/pom.xml b/core/org.eclipse.ptp.core/pom.xml
index e7f22a7..c24cbbe 100644
--- a/core/org.eclipse.ptp.core/pom.xml
+++ b/core/org.eclipse.ptp.core/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/core/org.eclipse.ptp.doc.isv/pom.xml b/core/org.eclipse.ptp.doc.isv/pom.xml
index 40339a0..ea45c44 100644
--- a/core/org.eclipse.ptp.doc.isv/pom.xml
+++ b/core/org.eclipse.ptp.doc.isv/pom.xml
@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>org.eclipse.ptp</groupId>
 		<artifactId>ptp-parent</artifactId>
-		<version>7.0.5-SNAPSHOT</version>
+		<version>8.0.0-SNAPSHOT</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
diff --git a/core/org.eclipse.ptp.doc.user/html/00newNoteworthy.html b/core/org.eclipse.ptp.doc.user/html/00newNoteworthy.html
index 22c2d32..fbce20e 100644
--- a/core/org.eclipse.ptp.doc.user/html/00newNoteworthy.html
+++ b/core/org.eclipse.ptp.doc.user/html/00newNoteworthy.html
@@ -4,15 +4,15 @@
 <link rel="stylesheet" type="text/css" href="help.css">
 </head>
 <body>
-<h1>Parallel Tools Platform (PTP) Release 7.0 - New and Noteworthy</h1>
+<h1>Parallel Tools Platform (PTP) Release 8.0 - New and Noteworthy</h1>
 
-<p>This version has had many enhancements and bug fixes since the 6.0  
+<p>This version has had many enhancements and bug fixes since the 7.0  
 release. 
-<p>Please see the online <a href="http://wiki.eclipse.org/PTP/new_and_noteworthy/7.0.0"> 
-New and Noteworthy</a> features in PTP release 7.0 for information and screenshots.
+<p>Please see the online <a href="http://wiki.eclipse.org/PTP/new_and_noteworthy/8.0.0"> 
+New and Noteworthy</a> features in PTP release 8.0 for information and screenshots.
 
-<p>Detailed PTP 7.0 release notes, including installation instructions, and more information on
-the new features in PTP 7.0 are available at <a href="http://wiki.eclipse.org/PTP/release_notes">
+<p>Detailed PTP 8.0 release notes, including installation instructions, and more information on
+the new features in PTP 8.0 are available at <a href="http://wiki.eclipse.org/PTP/release_notes">
     	http://wiki.eclipse.org/PTP/release_notes</a></p>
 
 <p><a href="#top">Back to Top</a> | <a href="toc.html">Back to Table of Contents</a>
diff --git a/core/org.eclipse.ptp.doc.user/html/00prereqs.html b/core/org.eclipse.ptp.doc.user/html/00prereqs.html
index 6bc5dac..26ae495 100755
--- a/core/org.eclipse.ptp.doc.user/html/00prereqs.html
+++ b/core/org.eclipse.ptp.doc.user/html/00prereqs.html
@@ -6,14 +6,14 @@
 <body>
 <h1 id="top">Prerequisites</h1>
 
-<p>The following prerequisites are required for PTP 7.0 installation. For more 
+<p>The following prerequisites are required for PTP 8.0 installation. For more 
 detailed information, including installation instructions, see
 <a href="http://wiki.eclipse.org/PTP/release_notes/7.0">
 http://wiki.eclipse.org/PTP/release_notes/7.0</a>
 </p>
 <ul>
 <li>Java 1.6 or later</li>
-<li><a href="http://eclipse.org/downloads">Eclipse SDK</a> Kepler (version 4.3) or later</li>
+<li><a href="http://eclipse.org/downloads">Eclipse SDK</a> Luna (version 4.4) or later</li>
 <li><a href="http://eclipse.org/cdt/">Eclipse C/C++ Development Tools (CDT)</a> version 8.2 or later</li>
 <li><a href="http://eclipse.org/tm">Remote System Explorer (RSE)</a> version 3.3 or later</li>
 </ul>
diff --git a/core/org.eclipse.ptp.doc.user/html/01buildMPIprog.html b/core/org.eclipse.ptp.doc.user/html/01buildMPIprog.html
index 3e28c8e..54fc1ed 100755
--- a/core/org.eclipse.ptp.doc.user/html/01buildMPIprog.html
+++ b/core/org.eclipse.ptp.doc.user/html/01buildMPIprog.html
@@ -151,15 +151,15 @@
 from include files that aren't on your system, and in the Eclipse
 <b>Problems</b> view.
 <p><img src="images/01edit-codanErrors.png"></p>
-<p>&nbsp
+<p>&nbsp;
 <p>
 To tell Eclipse about remote include files see
 <a href="includes.html">Include files for Synchronized Projects</a>.
-<p>&nbsp
+<p>&nbsp;
 <p>With include files successfully specified, the editor errors
 should go away:
 <p><img src="images/01edit-no-codanErrors.png"></p>
-<p>&nbsp
+<p>&nbsp;
 <h2 id="sync-build">Step 4: Build the executable on the remote machine</h2>
 <p></p>
 <ol>
diff --git a/core/org.eclipse.ptp.doc.user/html/03pRunConfig.html b/core/org.eclipse.ptp.doc.user/html/03pRunConfig.html
index 40e81ab..1ede6fc 100755
--- a/core/org.eclipse.ptp.doc.user/html/03pRunConfig.html
+++ b/core/org.eclipse.ptp.doc.user/html/03pRunConfig.html
@@ -201,13 +201,13 @@
 	<p>&nbsp;
 	<p><img src="images/03resources_configs.png">
 	</p>
-	<p>&nbsp
+	<p>&nbsp;
 	
 	<p><i>Note: PTP provides the ability to launch with various legacy-style configurations from previous
 	releases of PTP. Use the <b>Using Parallel Application Launcher - <u>Select other...</u></b>
 	link at the bottom of this dialog to choose a legacy launcher.</i>
 	 
-	<p>&nbsp
+	<p>&nbsp;
 	
 	</li>
 	<li>
@@ -219,7 +219,7 @@
 	<br>You can create a new connection here by clicking the <b>New...</b> button. 
 	 </p>
 	<p>
-	<p>&nbsp</p>
+	<p>&nbsp;</p>
 	<li>
 	<p>
 	Once you select the co[]nnection, you may be prompted to open the connection if it is not already open. The contents of the <b>Resources</b>
diff --git a/core/org.eclipse.ptp.doc.user/html/05monitoring.html b/core/org.eclipse.ptp.doc.user/html/05monitoring.html
index 92bf0af..be2b58e 100755
--- a/core/org.eclipse.ptp.doc.user/html/05monitoring.html
+++ b/core/org.eclipse.ptp.doc.user/html/05monitoring.html
@@ -24,6 +24,12 @@
 PTP provides the <b>System Monitoring</b> perspective for job and system monitoring.  To open the System Monitoring perspective,
 select <b>Window &gt; Open Perspective &gt; Other ...</b> and choose <b>System Monitoring</b> from the list.</p>
 
+<blockquote>
+<b>Note:</b> for a version of Eclipse that contains <i>only</i> the System Monitoring Perspective 
+and the ability to submit and monitor jobs, without using Eclipse for development (no IDE capabilities),
+see information about <a href="https://wiki.eclipse.org/PTP/sysmon"><b>Sysmon</b></a>.
+</blockquote>
+
 <p>The System Monitoring perspective is divided
 into four main areas. On the left side, from top to bottom are the <b><a href="#monitors">Monitors</a></b> view, the <b><a href="#jobs">Active/Inactive Jobs</a></b> views, and the 
 <b><a href="#messages">Messages</a></b> and <b><a href="#console">Console</a></b> views. Taking up the entire right side is the <b><a href="#system">System</a></b> view. 
diff --git a/core/org.eclipse.ptp.doc.user/html/07ptpPrefs.html b/core/org.eclipse.ptp.doc.user/html/07ptpPrefs.html
index c7079c7..c03ee7d 100755
--- a/core/org.eclipse.ptp.doc.user/html/07ptpPrefs.html
+++ b/core/org.eclipse.ptp.doc.user/html/07ptpPrefs.html
@@ -170,7 +170,7 @@
 Git location can be changed for each connection.
 <p><img src="images/sync-prefs-git.png">
 
-<p>&nbsp
+<p>&nbsp;
 <p><a href="#top">Back to Top</a> | <a href="toc.html">Back to
 Table of Contents</a>
 </body>
diff --git a/core/org.eclipse.ptp.doc.user/html/build.html b/core/org.eclipse.ptp.doc.user/html/build.html
index d2aa14b..3eee2be 100644
--- a/core/org.eclipse.ptp.doc.user/html/build.html
+++ b/core/org.eclipse.ptp.doc.user/html/build.html
@@ -151,7 +151,7 @@
 see <a href="sync.html">Synchronized projects</a>.
 
 
-<p>&nbsp
+<p>&nbsp;
 <p><a href="#top">Back to Top</a> | <a href="toc.html">Back to Table of Contents</a>
 </body>
 
diff --git a/core/org.eclipse.ptp.doc.user/html/includes.html b/core/org.eclipse.ptp.doc.user/html/includes.html
index 1aeb0d8..979758d 100644
--- a/core/org.eclipse.ptp.doc.user/html/includes.html
+++ b/core/org.eclipse.ptp.doc.user/html/includes.html
@@ -37,10 +37,10 @@
 <ul>
 <li>Bring up <a href="misc.html#projProps">Project Properties</a> for the project (right-mouse on project in <b>Project Explorer</b>
 and select <b>Properties</b> at the bottom of the context menu).
-<p>&nbsp
+<p>&nbsp;
 <li>In the Properties dialog, select <b>Paths and Symbols</b> on the left side.
 <p><img src="images/includePaths1.png"></p>
-<p>&nbsp
+<p>&nbsp;
 <li>Make sure that the active configuration is selected at the top, 
 that the <b>Includes</b> sub-tab is selected
 and that your C compiler is selected on the left side under <b>Languages</b>.
@@ -49,22 +49,22 @@
 <a href="remoteTools.html#create">Remote Connection</a> target name as the prefix, of the form:
 <code>//connection-name/path/to/includes</code>
 <p><img src="images/includePaths2.png"></p>
-<p>&nbsp
+<p>&nbsp;
 <p>Enter the path, prefixed by the remote connection target name.
 Add other paths if desired.
 Select the <b>OK</b> button in the <b>Add</b> dialog. You will see the list of include paths you added in the list under <b>Include directories</b>.
 <p><img src="images/includePaths6.png"></p>
-<p>&nbsp
+<p>&nbsp;
 <li>Select the <b>OK</b> button in the <b>Properties</b> dialog to close Project Properties.
-<p>&nbsp
+<p>&nbsp;
 <li>You will see a <b>Paths and Symbols</b> dialog asking you to rebuild the index with these new include files.
 Select <b>Yes</b> to continue.
 <p><img src="images/includePaths4-rebuildIndex.png"></p>
-<p>&nbsp
+<p>&nbsp;
 <p>The indexer make take a few minutes to run, depending on the size of your program and the connection speed.
 You can watch its progress in the status area in the lower right hand corner of the Eclipse workbench.
 <p><img src="images/includePaths7-indexer.png"></p>
-<p>&nbsp
+<p>&nbsp;
 <li>Now, if you have added include files for all the APIs used in a file, then when you edit the file,
 the <a href="PLUGINS_ROOT/org.eclipse.ptp.pldt.doc.user/html/codan.html">Codan</a> errors will be gone.
 If you hyperlink-click (ctrl-click) on an include file name in the editor, or on an API name,
@@ -72,15 +72,15 @@
 You can hover over the editor tab of this file to see that it is indeed located, via the remote tools connection,
 on the remote system.
 <p><img src="images/includePaths5-hoverEditorTab.png"></p>
-<p>&nbsp
+<p>&nbsp;
 
 </ul>
 
 <p>
 
 
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="#top">Back to Top</a> | <a href="toc.html">Back to Table of Contents</a>
 </body>
 
diff --git a/core/org.eclipse.ptp.doc.user/html/misc.html b/core/org.eclipse.ptp.doc.user/html/misc.html
index 5f24b82..9bb0e25 100644
--- a/core/org.eclipse.ptp.doc.user/html/misc.html
+++ b/core/org.eclipse.ptp.doc.user/html/misc.html
@@ -10,7 +10,7 @@
 <h2 id="projProps">Project Properties</h2>
 <p>Many types of information about an Eclipse PTP project
 are accessible in the <i>Project Properties</i>.
-<p>&nbsp
+<p>&nbsp;
 <p id="projprop">To access the <b>Project Properties</b>, select the right-mouse
 on the project name in Project Explorer
 and select <b>Properties</b> - at the bottom of the context menu.
@@ -18,8 +18,8 @@
 <p>The contents of the <b>Project Properties</b>
 dialog depends on the type of project.
 <p><img src="images/project-properties-dialog.png"></p>
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="#top">Back to Top</a> | <a href="toc.html">Back to Table of Contents</a>
 </body>
 
diff --git a/core/org.eclipse.ptp.doc.user/html/modules.html b/core/org.eclipse.ptp.doc.user/html/modules.html
index 4a316af..f48c575 100644
--- a/core/org.eclipse.ptp.doc.user/html/modules.html
+++ b/core/org.eclipse.ptp.doc.user/html/modules.html
@@ -31,10 +31,10 @@
 <li>From the project context menu (right-click on a C/C++ or Fortran project), select
 <b>Synchronize > Manage ...</b> 
 <p><img src="images/build-sync-manage.png"></p>
-<p>&nbsp
+<p>&nbsp;
 <p>This brings up the <b>Manage Synchronize Configurations</b> dialog.
 <p><img src="images/build-sync-manage-dialog.png"></p>
-<p>&nbsp
+<p>&nbsp;
 </li>
 <li>Alternatively, this is also available from  the <a href="misc.html#projProps">Project Properties</a> dialog,
 on the <b>Synchronize</b> page.  
@@ -51,7 +51,7 @@
 <li>Check <b>Use an environment management system to customize the remote build environment</b>.
 <p align="center"><script>thumb("images/build-sync-manage-dialog-box.png",245)</script></p><p><br/></p>
 
-<p>&nbsp
+<p>&nbsp;
 <li>If a message appears reading <b>The remote environment <i>(connection name)</i> is not connected</b>,
     click the <b>Connect</b> button.
     If no such message appears, proceed to the next step.
@@ -94,12 +94,12 @@
 <p>The module configuration area contains the following elements.</p>
 <ul>
 <li>The list of <b>Available Modules</b> on the left displays all of the modules available on the remote machine.
-    Select a module from the list on the left and click the <b>Add&nbsp-></b> button to add it to the list of selected modules.
-    Select a module from the list of modules on the right and use the <b><-&nbspRemove</b> button to remove modules from the selected modules list.
+    Select a module from the list on the left and click the <b>Add&nbsp;-></b> button to add it to the list of selected modules.
+    Select a module from the list of modules on the right and use the <b><-&nbsp;Remove</b> button to remove modules from the selected modules list.
     If a module is listed on the right in the <b>Selected Modules</b> list, that module will be loaded when the project is
     built.  If a module is not in the list of selected modules, PTP will ensure that the module is
     not loaded when the project is built.</li>
-<li>Selet a module in the list on the right and use the <b>Up</b> and <b>Down</b> buttons to re-order the selected modules so they will be loaded
+<li>Select a module in the list on the right and use the <b>Up</b> and <b>Down</b> buttons to re-order the selected modules so they will be loaded
     in the order listed.
 <li>A <b>Set Default</b> button restores the list so that only the
     default modules are checked.  The &quot;default modules&quot; are
diff --git a/core/org.eclipse.ptp.doc.user/html/rms/de.fz-juelich.judge.html b/core/org.eclipse.ptp.doc.user/html/rms/de.fz-juelich.judge.html
index 19a6379..f40792f 100755
--- a/core/org.eclipse.ptp.doc.user/html/rms/de.fz-juelich.judge.html
+++ b/core/org.eclipse.ptp.doc.user/html/rms/de.fz-juelich.judge.html
@@ -58,7 +58,7 @@
 on the <b>Application</b> tab, and specifying any other information required.
 
 
-<p>&nbsp
+<p>&nbsp;
 <p><a href="#top">Back to Top</a> | <a href="../toc.html">Back to Table of Contents</a>
  
 </body>
diff --git a/core/org.eclipse.ptp.doc.user/html/rms/de.fz-juelich.juqueen.html b/core/org.eclipse.ptp.doc.user/html/rms/de.fz-juelich.juqueen.html
index 860620f..8e0798e 100755
--- a/core/org.eclipse.ptp.doc.user/html/rms/de.fz-juelich.juqueen.html
+++ b/core/org.eclipse.ptp.doc.user/html/rms/de.fz-juelich.juqueen.html
@@ -64,7 +64,7 @@
 on the <b>Application</b> tab, and specifying any other information required.
 
 
-<p>&nbsp
+<p>&nbsp;
 <p><a href="#top">Back to Top</a> | <a href="../toc.html">Back to Table of Contents</a>
 </body>
 </html>
\ No newline at end of file
diff --git a/core/org.eclipse.ptp.doc.user/html/rms/de.fz-juelich.juropa.html b/core/org.eclipse.ptp.doc.user/html/rms/de.fz-juelich.juropa.html
index 6eb6f7a..3f72614 100755
--- a/core/org.eclipse.ptp.doc.user/html/rms/de.fz-juelich.juropa.html
+++ b/core/org.eclipse.ptp.doc.user/html/rms/de.fz-juelich.juropa.html
@@ -54,7 +54,7 @@
 on the <b>Application</b> tab, and specifying any other information required.
 
 
-<p>&nbsp
+<p>&nbsp;
 <p><a href="#top">Back to Top</a> | <a href="../toc.html">Back to Table of Contents</a>
 </body>
 </html>
\ No newline at end of file
diff --git a/core/org.eclipse.ptp.doc.user/html/rms/ibm-ll.html b/core/org.eclipse.ptp.doc.user/html/rms/ibm-ll.html
index ad200f8..4350617 100755
--- a/core/org.eclipse.ptp.doc.user/html/rms/ibm-ll.html
+++ b/core/org.eclipse.ptp.doc.user/html/rms/ibm-ll.html
@@ -49,7 +49,7 @@
 on the <b>Application</b> tab, and any other information required.
 
 
-<p>&nbsp
+<p>&nbsp;
 <p><a href="#top">Back to Top</a> | <a href="../toc.html">Back to Table of Contents</a>
 </body>
 </html>
diff --git a/core/org.eclipse.ptp.doc.user/html/rms/ibm-pe.html b/core/org.eclipse.ptp.doc.user/html/rms/ibm-pe.html
index 7687d27..c6e01be 100755
--- a/core/org.eclipse.ptp.doc.user/html/rms/ibm-pe.html
+++ b/core/org.eclipse.ptp.doc.user/html/rms/ibm-pe.html
@@ -66,7 +66,7 @@
 on the <b>Application</b> tab, and any other information required.
 
 
-<p>&nbsp
+<p>&nbsp;
 <p><a href="#top">Back to Top</a> | <a href="../toc.html">Back to Table of Contents</a>
 </body>
 </html>
diff --git a/core/org.eclipse.ptp.doc.user/html/rms/ibm-pmpi.html b/core/org.eclipse.ptp.doc.user/html/rms/ibm-pmpi.html
index 940c6e2..2b6011d 100644
--- a/core/org.eclipse.ptp.doc.user/html/rms/ibm-pmpi.html
+++ b/core/org.eclipse.ptp.doc.user/html/rms/ibm-pmpi.html
@@ -49,7 +49,7 @@
 on the <b>Application</b> tab, and any other information required.
 
 
-<p>&nbsp
+<p>&nbsp;
 <p><a href="#top">Back to Top</a> | <a href="../toc.html">Back to Table of Contents</a>
 </body>
 </html>
diff --git a/core/org.eclipse.ptp.doc.user/html/rms/openMPI.html b/core/org.eclipse.ptp.doc.user/html/rms/openMPI.html
index c57c1c8..275d138 100755
--- a/core/org.eclipse.ptp.doc.user/html/rms/openMPI.html
+++ b/core/org.eclipse.ptp.doc.user/html/rms/openMPI.html
@@ -56,7 +56,7 @@
 on the <b>Application</b> tab, and any other information required.
 
 
-<p>&nbsp
+<p>&nbsp;
 <p><a href="#top">Back to Top</a> | <a href="../toc.html">Back to Table of Contents</a>
 </body>
 </html>
diff --git a/core/org.eclipse.ptp.doc.user/html/rms/pbs.html b/core/org.eclipse.ptp.doc.user/html/rms/pbs.html
index c61c7ba..dd0fa83 100755
--- a/core/org.eclipse.ptp.doc.user/html/rms/pbs.html
+++ b/core/org.eclipse.ptp.doc.user/html/rms/pbs.html
@@ -54,7 +54,7 @@
 on the <b>Application</b> tab, and any other information required.
 
 
-<p>&nbsp
+<p>&nbsp;
 <p><a href="#top">Back to Top</a> | <a href="../toc.html">Back to Table of Contents</a>
 </body>
 </html>
diff --git a/core/org.eclipse.ptp.doc.user/html/rms/slurm.html b/core/org.eclipse.ptp.doc.user/html/rms/slurm.html
index cbce24f..0daf5c3 100755
--- a/core/org.eclipse.ptp.doc.user/html/rms/slurm.html
+++ b/core/org.eclipse.ptp.doc.user/html/rms/slurm.html
@@ -51,7 +51,7 @@
 on the <b>Application</b> tab, and any other information required.
 
 
-<p>&nbsp
+<p>&nbsp;
 <p><a href="#top">Back to Top</a> | <a href="../toc.html">Back to Table of Contents</a>
 </body>
 </html>
diff --git a/core/org.eclipse.ptp.doc.user/html/rms/torque.html b/core/org.eclipse.ptp.doc.user/html/rms/torque.html
index a1b620b..f4f8593 100755
--- a/core/org.eclipse.ptp.doc.user/html/rms/torque.html
+++ b/core/org.eclipse.ptp.doc.user/html/rms/torque.html
@@ -55,7 +55,7 @@
 on the <b>Application</b> tab, and any other information required.
 
 
-<p>&nbsp
+<p>&nbsp;
 <p><a href="#top">Back to Top</a> | <a href="../toc.html">Back to Table of Contents</a>
 </body>
 </html>
diff --git a/core/org.eclipse.ptp.doc.user/html/sync.html b/core/org.eclipse.ptp.doc.user/html/sync.html
index e7bcc8e..9d82e07 100644
--- a/core/org.eclipse.ptp.doc.user/html/sync.html
+++ b/core/org.eclipse.ptp.doc.user/html/sync.html
@@ -77,7 +77,7 @@
 <p><img src="images/sync-build-config.png"></p>
 <p>&nbsp;
 <p>Select <b>Finish</b> to end the New Project Wizard.
-<p>&nbsp
+<p>&nbsp;
 <h3 id="connection">Creating a remote connection</h3>
 On the first wizard page, the <b>New...</b> button can be used to create a new remote connection.
 Fill in host name, user, and password (or other authentication information).
diff --git a/core/org.eclipse.ptp.doc.user/html/toc.html b/core/org.eclipse.ptp.doc.user/html/toc.html
index dd56e43..83559f8 100755
--- a/core/org.eclipse.ptp.doc.user/html/toc.html
+++ b/core/org.eclipse.ptp.doc.user/html/toc.html
@@ -6,7 +6,7 @@
 </head>
 <body>
 <h1><img src="images/ptp_logo_intro.png" align="center">
-Parallel Tools Platform Release 7.0</h1>
+Parallel Tools Platform Release 8.0</h1>
 <p>The Parallel Tools Platform is designed to allow the Eclipse
 framework to be used for developing applications for parallel computer
 systems. PTP provides the following functionality:</p>
@@ -27,7 +27,7 @@
 <p>More information and downloads are available at <a
 	href="http://eclipse.org/ptp">http://eclipse.org/ptp</a>.</p>
 	
-	<p>PTP 7.0 is released as part of the Eclipse Kepler Simultaneous release (June 2013).
+	<p>PTP 8.0 is released as part of the Eclipse Luna Simultaneous release (June 2014).
 <h2>Overview, Background, and Setup information</h2>
 <p></p>
 <ol>
diff --git a/core/org.eclipse.ptp.doc.user/pom.xml b/core/org.eclipse.ptp.doc.user/pom.xml
index f239814..86702d7 100644
--- a/core/org.eclipse.ptp.doc.user/pom.xml
+++ b/core/org.eclipse.ptp.doc.user/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/core/org.eclipse.ptp.ems.core/.options b/core/org.eclipse.ptp.ems.core/.options
index e24816e..63774c3 100644
--- a/core/org.eclipse.ptp.ems.core/.options
+++ b/core/org.eclipse.ptp.ems.core/.options
@@ -1 +1 @@
-org.eclipse.ptp.ems.core/debug=true
+org.eclipse.ptp.ems.core/debug=false
diff --git a/core/org.eclipse.ptp.ems.core/META-INF/MANIFEST.MF b/core/org.eclipse.ptp.ems.core/META-INF/MANIFEST.MF
index 1a368d4..74c7279 100644
--- a/core/org.eclipse.ptp.ems.core/META-INF/MANIFEST.MF
+++ b/core/org.eclipse.ptp.ems.core/META-INF/MANIFEST.MF
@@ -3,13 +3,13 @@
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.ptp.ems.core;singleton:=true
 Bundle-Vendor: %providerName
-Bundle-Version: 2.0.0.qualifier
+Bundle-Version: 3.0.0.qualifier
 Bundle-Localization: plugin
 Bundle-Activator: org.eclipse.ptp.internal.ems.core.EMSCorePlugin
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.core.filesystem,
  org.eclipse.core.resources,
- org.eclipse.ptp.remote.core
+ org.eclipse.remote.core
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.ptp.ems.core
diff --git a/core/org.eclipse.ptp.ems.core/pom.xml b/core/org.eclipse.ptp.ems.core/pom.xml
index 62b9983..87657e9 100644
--- a/core/org.eclipse.ptp.ems.core/pom.xml
+++ b/core/org.eclipse.ptp.ems.core/pom.xml
@@ -6,11 +6,11 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.ems.core</artifactId>
-  <version>2.0.0-SNAPSHOT</version>
+  <version>3.0.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/core/org.eclipse.ptp.ems.core/src/org/eclipse/ptp/ems/core/EnvManagerRegistry.java b/core/org.eclipse.ptp.ems.core/src/org/eclipse/ptp/ems/core/EnvManagerRegistry.java
index 58b2e20..cfaa238 100644
--- a/core/org.eclipse.ptp.ems.core/src/org/eclipse/ptp/ems/core/EnvManagerRegistry.java
+++ b/core/org.eclipse.ptp.ems.core/src/org/eclipse/ptp/ems/core/EnvManagerRegistry.java
@@ -16,7 +16,7 @@
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.ptp.internal.ems.core.EMSCorePlugin;
 import org.eclipse.ptp.internal.ems.core.managers.NullEnvManager;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnection;
 
 /**
  * Provides {@link IEnvManager} objects, which provide access to remote machines' environment management systems.
@@ -50,10 +50,12 @@
 	 *            {@link IRemoteConnection} providing a connection to a particular remote machine (non-<code>null</code>)
 	 * 
 	 * @return {@link IEnvManager} (non-<code>null</code>)
+	 * @since 3.0
 	 */
 	public static IEnvManager getEnvManager(IProgressMonitor pm, IRemoteConnection remoteConnection) {
 		if (remoteConnection != null) {
-			final IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(IEnvManager.ENV_MANAGER_EXTENSION_POINT_ID);
+			final IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(
+					IEnvManager.ENV_MANAGER_EXTENSION_POINT_ID);
 			for (final IConfigurationElement element : extensionPoint.getConfigurationElements()) {
 				try {
 					final IEnvManager manager = (IEnvManager) element.createExecutableExtension("class"); //$NON-NLS-1$
diff --git a/core/org.eclipse.ptp.ems.core/src/org/eclipse/ptp/ems/core/IEnvManager.java b/core/org.eclipse.ptp.ems.core/src/org/eclipse/ptp/ems/core/IEnvManager.java
index bfc9710..45940a8 100644
--- a/core/org.eclipse.ptp.ems.core/src/org/eclipse/ptp/ems/core/IEnvManager.java
+++ b/core/org.eclipse.ptp.ems.core/src/org/eclipse/ptp/ems/core/IEnvManager.java
@@ -15,8 +15,8 @@
 import java.util.List;
 
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
 
 /**
  * An object which provides access to an environment management system on a remote machine.
@@ -66,6 +66,7 @@
 	 * 
 	 * @param remoteConnection
 	 *            {@link IRemoteConnection} (non-<code>null</code>)
+	 * @since 3.0
 	 */
 	void configure(IRemoteConnection remoteConnection);
 
diff --git a/core/org.eclipse.ptp.ems.core/src/org/eclipse/ptp/internal/ems/core/managers/AbstractEnvManager.java b/core/org.eclipse.ptp.ems.core/src/org/eclipse/ptp/internal/ems/core/managers/AbstractEnvManager.java
index 0e23a26..477675a 100644
--- a/core/org.eclipse.ptp.ems.core/src/org/eclipse/ptp/internal/ems/core/managers/AbstractEnvManager.java
+++ b/core/org.eclipse.ptp.ems.core/src/org/eclipse/ptp/internal/ems/core/managers/AbstractEnvManager.java
@@ -32,12 +32,12 @@
 import org.eclipse.ptp.ems.core.IEnvManager;
 import org.eclipse.ptp.ems.core.IEnvManagerConfig;
 import org.eclipse.ptp.internal.ems.core.EMSCorePlugin;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.core.IRemoteProcess;
-import org.eclipse.ptp.remote.core.IRemoteProcessBuilder;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteProcess;
+import org.eclipse.remote.core.IRemoteProcessBuilder;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
 
 /**
  * Base class for implementations of {@link IEnvManager}.
@@ -80,7 +80,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.ems.core.IEnvManager#configure(org.eclipse.ptp.remote.core.IRemoteConnection)
+	 * @see org.eclipse.ptp.ems.core.IEnvManager#configure(org.eclipse.remote.core.IRemoteConnection)
 	 */
 	@Override
 	public final void configure(IRemoteConnection remoteConnection) {
@@ -211,7 +211,7 @@
 			connection.open(monitor.newChild(80));
 		}
 
-		return connection.getRemoteServices().getProcessBuilder(connection, command);
+		return connection.getProcessBuilder(command);
 	}
 
 	private void readLines(InputStream input, List<String> result) throws IOException {
@@ -361,7 +361,7 @@
 	}
 
 	private void checkTempFile(String pathToTempFile) throws IOException {
-		final IRemoteFileManager fileManager = getRemoteServices().getFileManager(getRemoteConnection());
+		final IRemoteFileManager fileManager = getRemoteConnection().getFileManager();
 		final IFileStore script = fileManager.getResource(pathToTempFile);
 		final IFileInfo info = script.fetchInfo();
 		if (info.isDirectory() || info.getLength() > 0) {
@@ -370,7 +370,7 @@
 	}
 
 	private void writeBashScript(boolean echo, String pathToTempFile, IEnvManagerConfig config, String commandToExecuteAfterward) {
-		final IRemoteFileManager fileManager = getRemoteServices().getFileManager(getRemoteConnection());
+		final IRemoteFileManager fileManager = getRemoteConnection().getFileManager();
 		final IFileStore script = fileManager.getResource(pathToTempFile);
 		PrintStream out = null;
 		try {
diff --git a/core/org.eclipse.ptp.ems.core/src/org/eclipse/ptp/internal/ems/core/managers/LmodEnvManager.java b/core/org.eclipse.ptp.ems.core/src/org/eclipse/ptp/internal/ems/core/managers/LmodEnvManager.java
index 5ecf18e..b90c788 100644
--- a/core/org.eclipse.ptp.ems.core/src/org/eclipse/ptp/internal/ems/core/managers/LmodEnvManager.java
+++ b/core/org.eclipse.ptp.ems.core/src/org/eclipse/ptp/internal/ems/core/managers/LmodEnvManager.java
@@ -23,7 +23,7 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.ptp.ems.core.IEnvManager;
 import org.eclipse.ptp.internal.ems.core.messages.Messages;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
 
 /**
  * An {@link IEnvManager} for <a href="http://lmod.sourceforge.net">Lmod</a> (Modules based on Lua).
diff --git a/core/org.eclipse.ptp.ems.core/src/org/eclipse/ptp/internal/ems/core/managers/ModulesEnvManager.java b/core/org.eclipse.ptp.ems.core/src/org/eclipse/ptp/internal/ems/core/managers/ModulesEnvManager.java
index 18e8dad..6de1f31 100644
--- a/core/org.eclipse.ptp.ems.core/src/org/eclipse/ptp/internal/ems/core/managers/ModulesEnvManager.java
+++ b/core/org.eclipse.ptp.ems.core/src/org/eclipse/ptp/internal/ems/core/managers/ModulesEnvManager.java
@@ -23,7 +23,7 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.ptp.ems.core.IEnvManager;
 import org.eclipse.ptp.internal.ems.core.messages.Messages;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
 
 /**
  * An {@link IEnvManager} for <a href="http://modules.sf.net">Modules</a>.
diff --git a/core/org.eclipse.ptp.ems.core/src/org/eclipse/ptp/internal/ems/core/managers/SoftEnvManager.java b/core/org.eclipse.ptp.ems.core/src/org/eclipse/ptp/internal/ems/core/managers/SoftEnvManager.java
index fa38cde..4a64354 100644
--- a/core/org.eclipse.ptp.ems.core/src/org/eclipse/ptp/internal/ems/core/managers/SoftEnvManager.java
+++ b/core/org.eclipse.ptp.ems.core/src/org/eclipse/ptp/internal/ems/core/managers/SoftEnvManager.java
@@ -21,7 +21,7 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.ptp.ems.core.IEnvManager;
 import org.eclipse.ptp.internal.ems.core.messages.Messages;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
 
 /**
  * An {@link IEnvManager} for <a href="http://www.mcs.anl.gov/hs/software/systems/softenv/softenv-intro.html">SoftEnv</a>.
diff --git a/core/org.eclipse.ptp.ems.ui/META-INF/MANIFEST.MF b/core/org.eclipse.ptp.ems.ui/META-INF/MANIFEST.MF
index a259cdf..8770568 100644
--- a/core/org.eclipse.ptp.ems.ui/META-INF/MANIFEST.MF
+++ b/core/org.eclipse.ptp.ems.ui/META-INF/MANIFEST.MF
@@ -3,18 +3,19 @@
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.ptp.ems.ui;singleton:=true
 Bundle-Vendor: %providerName
-Bundle-Version: 2.0.0.qualifier
+Bundle-Version: 3.0.0.qualifier
 Bundle-Localization: plugin
 Bundle-Activator: org.eclipse.ptp.internal.ems.ui.EMSUIPlugin
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.ui,
  org.eclipse.ptp.ems.core,
- org.eclipse.ptp.remote.core,
- org.eclipse.ptp.remote.ui,
+ org.eclipse.remote.core,
+ org.eclipse.remote.ui,
  org.eclipse.ptp.rm.jaxb.ui,
  org.eclipse.ptp.rm.jaxb.control.ui,
  org.eclipse.ptp.rm.jaxb.core,
- org.eclipse.debug.core
+ org.eclipse.debug.core,
+ org.eclipse.ui.trace
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.ptp.ems.ui
diff --git a/core/org.eclipse.ptp.ems.ui/plugin.xml b/core/org.eclipse.ptp.ems.ui/plugin.xml
index 9156b3e..95d9b99 100644
--- a/core/org.eclipse.ptp.ems.ui/plugin.xml
+++ b/core/org.eclipse.ptp.ems.ui/plugin.xml
@@ -9,6 +9,17 @@
             widgetClass="org.eclipse.ptp.internal.ems.ui.EnvManagerConfigButton">
       </widget>
    </extension>
+   <extension
+         point="org.eclipse.ui.trace.traceComponents">
+      <component
+            id="org.eclipse.ptp.ems.core.component"
+            label="EMS Core">
+         <bundle
+               consumed="true"
+               name="org.eclipse.ptp.ems.core">
+         </bundle>
+      </component>
+   </extension>
 
 
 </plugin>
diff --git a/core/org.eclipse.ptp.ems.ui/pom.xml b/core/org.eclipse.ptp.ems.ui/pom.xml
index cbad82c..e4eb2cc 100644
--- a/core/org.eclipse.ptp.ems.ui/pom.xml
+++ b/core/org.eclipse.ptp.ems.ui/pom.xml
@@ -6,11 +6,11 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.ems.ui</artifactId>
-  <version>2.0.0-SNAPSHOT</version>
+  <version>3.0.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/ems/ui/EnvManagerConfigWidget.java b/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/ems/ui/EnvManagerConfigWidget.java
index e5b9e63..d82fed2 100644
--- a/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/ems/ui/EnvManagerConfigWidget.java
+++ b/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/ems/ui/EnvManagerConfigWidget.java
@@ -21,7 +21,7 @@
 import org.eclipse.ptp.ems.core.IEnvManagerConfig;
 import org.eclipse.ptp.internal.ems.ui.EnvManagerChecklist;
 import org.eclipse.ptp.internal.ems.ui.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnection;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.StackLayout;
 import org.eclipse.swt.events.SelectionAdapter;
@@ -103,7 +103,7 @@
 	 * @param connection
 	 *            {@link IRemoteConnection} used to access files and execute shell commands on the remote machine (non-
 	 *            <code>null</code>)
-	 * @since 2.0
+	 * @since 3.0
 	 */
 	public void setConnection(IRemoteConnection connection) {
 		if (envConfigChecklist != null) {
@@ -258,7 +258,7 @@
 	 *            {@link IRemoteConnection} providing access to the remote machine (non-<code>null</code>)
 	 * @param selectedItems
 	 *            the items which should be selected in the checklist (non-<code>null</code>)
-	 * @since 2.0
+	 * @since 3.0
 	 */
 	public void configurationChanged(URI uri, IRemoteConnection remoteConnection,
 			List<String> selectedItems) {
diff --git a/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/ems/ui/LazyEnvManagerDetector.java b/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/ems/ui/LazyEnvManagerDetector.java
index b9012f3..18c762a 100644
--- a/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/ems/ui/LazyEnvManagerDetector.java
+++ b/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/ems/ui/LazyEnvManagerDetector.java
@@ -22,8 +22,8 @@
 import org.eclipse.ptp.ems.core.IEnvManager;
 import org.eclipse.ptp.ems.core.IEnvManagerConfig;
 import org.eclipse.ptp.internal.ems.ui.EMSUIPlugin;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
 import org.eclipse.ui.PlatformUI;
 
 /**
@@ -70,6 +70,7 @@
 	 * @param remoteConnection
 	 *            {@link IRemoteConnection} used to access files and execute shell commands on the remote machine (non-
 	 *            <code>null</code>)
+	 * @since 3.0
 	 */
 	public LazyEnvManagerDetector(final IRemoteConnection remoteConnection) {
 		this.remoteConnection = remoteConnection;
@@ -88,7 +89,10 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.ems.core.IEnvManager#configure(org.eclipse.ptp.remote.core.IRemoteConnection)
+	 * @see org.eclipse.ptp.ems.core.IEnvManager#configure(org.eclipse.remote.core.IRemoteConnection)
+	 */
+	/**
+	 * @since 3.0
 	 */
 	@Override
 	public void configure(IRemoteConnection remoteConnection) {
diff --git a/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/AsyncRepopulationStrategy.java b/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/AsyncRepopulationStrategy.java
index 5ba7db3..da73ea0 100644
--- a/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/AsyncRepopulationStrategy.java
+++ b/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/AsyncRepopulationStrategy.java
@@ -15,11 +15,11 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 
 /**
- * Strategy object used for asynchronous population of a {@link SearchableChecklist}.
+ * Strategy object used for asynchronous population of a {@link SearchableSelectionList}.
  * 
  * @author Jeff Overbey
  * 
- * @see SearchableChecklist#asyncRepopulate(AsyncRepopulationStrategy)
+ * @see SearchableSelectionList#asyncRepopulate(AsyncRepopulationStrategy)
  */
 public interface AsyncRepopulationStrategy {
 
diff --git a/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/EnvManagerChecklist.java b/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/EnvManagerChecklist.java
index 597d035..253cb4b 100644
--- a/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/EnvManagerChecklist.java
+++ b/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/EnvManagerChecklist.java
@@ -26,8 +26,9 @@
 import org.eclipse.ptp.ems.ui.EnvManagerConfigWidget;
 import org.eclipse.ptp.ems.ui.IErrorListener;
 import org.eclipse.ptp.internal.ems.ui.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.ui.RemoteUIServicesUtils;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.ui.IRemoteUIServices;
+import org.eclipse.remote.ui.RemoteUIServices;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.StackLayout;
 import org.eclipse.swt.events.SelectionAdapter;
@@ -46,7 +47,7 @@
  * <ul>
  * <li>If a connection to the remote machine is available but not yet opened, an informational message is displayed with a button
  * allowing the user to establish the connection.
- * <li>If a connection to the remote machine is open, a {@link SearchableChecklist} is displayed with a list of available
+ * <li>If a connection to the remote machine is open, a {@link SearchableSelectionList} is displayed with a list of available
  * environment modules/macros.
  * <li>If there is no remote connection configured, or if the remote system does not have a supported environment configuration
  * system installed, then an informational message is displayed to the user.
@@ -189,7 +190,10 @@
 			return false;
 		}
 		if (!remoteConnection.isOpen()) {
-			RemoteUIServicesUtils.openConnectionWithProgress(getShell(), null, remoteConnection);
+			IRemoteUIServices services = RemoteUIServices.getRemoteUIServices(remoteConnection.getRemoteServices());
+			if (services != null) {
+				services.getUIConnectionManager().openConnectionWithProgress(getShell(), null, remoteConnection);
+			}
 		}
 		return remoteConnection.isOpen();
 	}
diff --git a/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/EnvManagerConfigButton.java b/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/EnvManagerConfigButton.java
index b195410..c316bcb 100644
--- a/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/EnvManagerConfigButton.java
+++ b/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/EnvManagerConfigButton.java
@@ -22,9 +22,9 @@
 import org.eclipse.ptp.ems.ui.EnvManagerConfigWidget;
 import org.eclipse.ptp.ems.ui.IErrorListener;
 import org.eclipse.ptp.internal.ems.ui.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
 import org.eclipse.ptp.rm.jaxb.control.ui.AbstractWidget;
 import org.eclipse.ptp.rm.jaxb.control.ui.IWidgetDescriptor;
+import org.eclipse.remote.core.IRemoteConnection;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.SWTException;
 import org.eclipse.swt.events.ModifyListener;
diff --git a/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/SearchableChecklist.java b/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/SearchableChecklist.java
deleted file mode 100644
index 556256c..0000000
--- a/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/SearchableChecklist.java
+++ /dev/null
@@ -1,469 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012 University of Illinois and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Jeff Overbey (Illinois) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.ems.ui;
-
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.Set;
-import java.util.TreeSet;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.ptp.internal.ems.ui.messages.Messages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Instances of this class represent a user interface element which contains a group with an informational message,
- * a checklist, and a search box which can be used to filter items in the checklist.
- * <p>
- * The items (strings) in the checklist must be distinct. Items are sorted according to their natural ordering unless a custom
- * comparator is provided via {@link #setComparator(Comparator)}.
- * <p>
- * Typically, a {@link SearchableChecklist} is used as follows.
- * <ol>
- * <li>Invoke the constructor, {@link SearchableChecklist#SearchableChecklist(Composite)}.
- * <li>Customize the title, label, and column headings using {@link #setTitle(String)}, {@link #setInstructions(String)}/
- * {@link #setInstructions(String, int)}, and {@link #setColumnHeaders(String, String)}, respectively.
- * <li>If necessary, invoke {@link #setComparator(Comparator)} to change how items are sorted.
- * <li>Invoke {@link #setItems(Set, Set)} to set the items available in the list.
- * <li>When finished, invoke {@link #getSelectedItems()} to determine what items were selected by the user.
- * </ol>
- * <p>
- * At any time, {@link #setItems(Set, Set)} can be invoked to change the list contents. The list contents can be reconstructed in a
- * background thread via {@link #asyncRepopulate(AsyncRepopulationStrategy)}.
- * 
- * @author Jeff Overbey
- * 
- * @see Composite
- */
-@SuppressWarnings("javadoc")
-public final class SearchableChecklist extends Composite {
-
-	private final Group group;
-	private Label instructions = null;
-	private Text searchBox = null;
-	private Table table = null;
-	private TableColumn enableColumn = null;
-	private TableColumn textColumn = null;
-	private Button clearSelection = null;
-	private Button loadDefaults = null;
-	private Button reloadList = null;
-
-	private Comparator<String> comparator = null;
-	private Set<String> items = Collections.<String> emptySet();
-	private Set<String> selectedItems = new HashSet<String>();
-
-	/**
-	 * Constructor.
-	 */
-	public SearchableChecklist(Composite parent) {
-		super(parent, SWT.NONE);
-
-		this.setLayout(new FillLayout());
-
-		group = new Group(this, SWT.SHADOW_ETCHED_IN);
-		group.setText(""); //$NON-NLS-1$
-
-		final GridLayout layout = new GridLayout(3, false);
-		layout.marginWidth = 10;
-		layout.horizontalSpacing = 25;
-		group.setLayout(layout);
-
-		createInstructionalMessage();
-		createSearchBox();
-		createTable();
-		createButtons();
-
-		this.layout();
-	}
-
-	private void createInstructionalMessage() {
-		instructions = new Label(group, SWT.WRAP);
-		instructions.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 2, 2));
-	}
-
-	private void createSearchBox() {
-		GridData gd;
-
-		final Label filter = new Label(group, SWT.WRAP);
-		gd = new GridData(SWT.FILL, SWT.BOTTOM, true, false);
-		gd.widthHint = 150;
-		filter.setLayoutData(gd);
-		filter.setText(Messages.SearchableChecklist_SearchBoxLabel);
-		filter.setForeground(this.getDisplay().getSystemColor(
-				SWT.COLOR_WIDGET_DARK_SHADOW));
-
-		searchBox = new Text(group, SWT.SINGLE | SWT.SEARCH | SWT.ICON_SEARCH | SWT.ICON_CANCEL);
-		gd = new GridData(SWT.FILL, SWT.TOP, true, false);
-		gd.widthHint = 150;
-		searchBox.setLayoutData(gd);
-		searchBox.addModifyListener(new ModifyListener() {
-			@Override
-			public void modifyText(ModifyEvent e) {
-				refresh();
-				if (table != null && table.getItemCount() == 1) {
-					highlightItem(0);
-				}
-			}
-		});
-		searchBox.addFocusListener(new FocusAdapter() {
-			@Override
-			public void focusLost(FocusEvent e) {
-				if (table != null && table.getItemCount() == 1) {
-					clearFilterAndSelectHighlighted(table.getItem(0).getText(1));
-				}
-			}
-		});
-	}
-
-	private void highlightItem(int index) {
-		final Color yellow = table.getDisplay().getSystemColor(SWT.COLOR_YELLOW);
-		final Color black = table.getDisplay().getSystemColor(SWT.COLOR_BLACK);
-
-		table.getItem(index).setBackground(yellow);
-		table.getItem(index).setForeground(black);
-	}
-
-	private void clearFilterAndSelectHighlighted(String item) {
-		selectedItems.add(item);
-		searchBox.setText(""); //$NON-NLS-1$
-		refresh();
-		highlightItem(item);
-		removeHighlightingAfterDelay(item);
-	}
-
-	private void highlightItem(String item) {
-		for (int index = 0; index < table.getItemCount(); index++) {
-			if (table.getItem(index).getText(1).equals(item)) {
-				highlightItem(index);
-				break;
-			}
-		}
-	}
-
-	private void removeHighlightingAfterDelay(final String item) {
-		final int DELAY_IN_MILLISECONDS = 1500;
-
-		final Job job = new Job("") { //$NON-NLS-1$
-			@Override
-			protected IStatus run(IProgressMonitor monitor) {
-				table.getDisplay().syncExec(new Runnable() {
-					@Override
-					public void run() {
-						for (int index = 0; index < table.getItemCount(); index++) {
-							if (table.getItem(index).getText(1).equals(item)) {
-								removeHightingFromItem(index);
-								break;
-							}
-						}
-					}
-				});
-				return Status.OK_STATUS;
-			}
-		};
-		job.setPriority(Job.INTERACTIVE);
-		job.schedule(DELAY_IN_MILLISECONDS);
-	}
-
-	private void removeHightingFromItem(int index) {
-		table.getItem(index).setBackground(table.getBackground());
-		table.getItem(index).setForeground(table.getForeground());
-	}
-
-	private void createTable() {
-		table = new Table(group, SWT.MULTI | SWT.CHECK | SWT.V_SCROLL | SWT.BORDER);
-		final GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1);
-		gd.heightHint = 75;
-		table.setLayoutData(gd);
-		table.setLinesVisible(false);
-		table.setHeaderVisible(true);
-		table.addSelectionListener(new SelectionAdapter() {
-			@Override
-			public void widgetSelected(SelectionEvent e) {
-				if (e.item instanceof TableItem) {
-					final TableItem item = (TableItem) e.item;
-					final String moduleName = item.getText(1);
-					if (item.getChecked()) {
-						selectedItems.add(moduleName);
-					} else {
-						selectedItems.remove(moduleName);
-					}
-				}
-			}
-		});
-
-		enableColumn = new TableColumn(table, SWT.NONE);
-		textColumn = new TableColumn(table, SWT.NONE);
-	}
-
-	private void createButtons() {
-		clearSelection = new Button(group, SWT.PUSH);
-		clearSelection.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
-		clearSelection.setText(Messages.SearchableChecklist_ClearSelection);
-		clearSelection.addSelectionListener(new SelectionAdapter() {
-			@Override
-			public void widgetSelected(SelectionEvent e) {
-				setItems(items, Collections.<String> emptySet());
-			}
-		});
-
-		loadDefaults = new Button(group, SWT.PUSH);
-		loadDefaults.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
-		loadDefaults.setText(Messages.SearchableChecklist_SelectDefaults);
-
-		reloadList = new Button(group, SWT.PUSH);
-		reloadList.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, true, false));
-		reloadList.setText(Messages.SearchableChecklist_ReloadList);
-	}
-
-	/**
-	 * Adds the given {@link SelectionListener} to the &quot;Clear Selection&quot; button.
-	 */
-	public void addClearButtonSelectonListener(SelectionListener listener) {
-		clearSelection.addSelectionListener(listener);
-	}
-
-	/**
-	 * Adds the given {@link SelectionListener} to the &quot;Select Defaults&quot; button.
-	 */
-	public void addDefaultButtonSelectonListener(SelectionListener listener) {
-		loadDefaults.addSelectionListener(listener);
-	}
-
-	/**
-	 * Adds the given {@link SelectionListener} to the &quot;Reload List&quot; button.
-	 */
-	public void addReloadButtonSelectonListener(SelectionListener listener) {
-		reloadList.addSelectionListener(listener);
-	}
-
-	private Pattern compilePattern() {
-		String patternText = searchBox.getText().trim();
-		if (patternText.equals("")) { //$NON-NLS-1$
-			return null;
-		} else {
-			// Quote the search text, so substrings like "." and "\d" aren't
-			// interpreted as literals rather than as regex patterns
-			patternText = "\\Q" + patternText.replace("\\E", "\\\\E") + "\\E"; //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			// Replace the "*" wildcard character with the regex pattern ".*"
-			patternText = patternText.replace("*", "\\E.*\\Q"); //$NON-NLS-1$ //$NON-NLS-2$
-			// Replace the "?" wildcard character with the regex pattern ".?"
-			patternText = patternText.replace("?", "\\E.?\\Q"); //$NON-NLS-1$ //$NON-NLS-2$
-
-			return Pattern.compile(patternText, Pattern.CASE_INSENSITIVE);
-		}
-	}
-
-	private boolean matches(Pattern pattern, String moduleName) {
-		if (pattern == null) { // User didn't type any filter text
-			return true;
-		} else {
-			final Matcher matcher = pattern.matcher(moduleName);
-			if (matcher.find()) {
-				return matcher.start() == 0; // Match prefixes only
-			} else {
-				return false;
-			}
-		}
-	}
-
-	/** Sets the headers for the two columns in the checklist. */
-	public void setColumnHeaders(String checkboxColumnHeader, String textColumnHeader) {
-		enableColumn.setText(checkboxColumnHeader);
-		enableColumn.pack();
-
-		textColumn.setText(textColumnHeader);
-		textColumn.pack();
-
-		this.layout(true, true);
-	}
-
-	/** Sets the instructions displayed above the checklist. */
-	public void setInstructions(String message, int widthHint) {
-		final GridData gd = (GridData) instructions.getLayoutData();
-		gd.widthHint = widthHint;
-		setInstructions(message);
-	}
-
-	/** Sets the instructions displayed above the checklist. */
-	public void setInstructions(String message) {
-		instructions.setText(message);
-		this.layout(true, true);
-	}
-
-	/** Sets the {@link Comparator} used to sort items in the checklist. */
-	public void setComparator(Comparator<String> comparator) {
-		this.comparator = comparator;
-	}
-
-	/** @return the set of all items in the checklist (non-<code>null</code>, non-modifiable) */
-	public Set<String> getAllItems() {
-		return Collections.unmodifiableSet(items);
-	}
-
-	/** @return the set of all selected items in the checklist (non-<code>null</code>, non-modifiable) */
-	public Set<String> getSelectedItems() {
-		return Collections.unmodifiableSet(selectedItems);
-	}
-
-	/**
-	 * Modifies the items in the checklist.
-	 * 
-	 * @param items
-	 *            the complete set of items visible to the user (non-<code>null</code>)
-	 * @param selectedItems
-	 *            the subset of <code>items</code> which should be checked (non-<code>null</code>)
-	 */
-	public void setItems(Set<String> items, Set<String> selectedItems) {
-		final TreeSet<String> itemsCopy = new TreeSet<String>(comparator);
-		itemsCopy.addAll(items);
-		this.items = Collections.unmodifiableSet(itemsCopy);
-
-		this.selectedItems = new HashSet<String>(selectedItems);
-		this.selectedItems.retainAll(this.items);
-
-		refresh();
-	}
-
-	private void refresh() {
-		table.removeAll();
-		final Pattern pattern = compilePattern();
-		for (final String moduleName : items) {
-			if (matches(pattern, moduleName)) {
-				final TableItem item = new TableItem(table, SWT.NONE);
-				item.setText(1, moduleName);
-				item.setChecked(selectedItems.contains(moduleName));
-			}
-		}
-		textColumn.pack();
-		this.layout();
-	}
-
-	/**
-	 * Repopulates this checklist, computing the list of items in a background thread.
-	 * <p>
-	 * The operation of this procedure is as follows, where <code>strategy</code> is the {@link AsyncRepopulationStrategy} provided
-	 * as an argument to this method:
-	 * 
-	 * <pre>
-	 * Display to the user: strategy.getMessage();
-	 * In a background thread {
-	 *     Set<String> items = strategy.computeItems();
-	 *     Set<String> selectedItems = strategy.computeSelectedItems();
-	 * }
-	 * In the UI thread {
-	 *     setItems(items, selectedItems);
-	 *     strategy.afterRepopulation();
-	 * }
-	 * </pre>
-	 * <p>
-	 * The set of selected items is unaffected if an {@link AsyncRepopulationStrategy} method throws an exception.
-	 * 
-	 * @param enableAfterRepopulation
-	 *            the value passed to {@link #setEnabled(boolean)} after the list is repopulated
-	 * @param strategy
-	 */
-	public void asyncRepopulate(final AsyncRepopulationStrategy strategy) {
-		setItems(Collections.<String> emptySet(), Collections.<String> emptySet());
-
-		final TableItem tableItem = new TableItem(table, SWT.NONE);
-		tableItem.setText(1, strategy.getMessage());
-		tableItem.setForeground(this.getDisplay().getSystemColor(SWT.COLOR_TITLE_INACTIVE_FOREGROUND));
-		textColumn.pack();
-
-		setEnabled(false);
-
-		final Job job = new AsyncRepopulationJob(strategy);
-		job.setPriority(Job.INTERACTIVE);
-		job.schedule();
-	}
-
-	private final class AsyncRepopulationJob extends Job {
-		private final AsyncRepopulationStrategy strategy;
-
-		public AsyncRepopulationJob(AsyncRepopulationStrategy strategy) {
-			super(strategy.getMessage());
-			this.strategy = strategy;
-		}
-
-		@Override
-		protected IStatus run(IProgressMonitor monitor) {
-			final Set<String> modules;
-			final Set<String> modulesToSelect;
-			try {
-				modules = new TreeSet<String>(strategy.computeItems(monitor));
-				modulesToSelect = new TreeSet<String>(strategy.computeSelectedItems(monitor));
-			} catch (final Exception e) {
-				if (!isDisposed()) {
-					getDisplay().syncExec(new Runnable() {
-						@Override
-						public void run() {
-							if (!table.isDisposed()) { // Make sure the user didn't close the project properties dialog
-								table.getItem(0).setText(1, e.getClass().getSimpleName() + ": " + e.getLocalizedMessage()); //$NON-NLS-1$
-							}
-						}
-					});
-				}
-				return new Status(IStatus.ERROR, EMSUIPlugin.PLUGIN_ID, IStatus.ERROR, e.getLocalizedMessage(), e);
-			}
-
-			if (!isDisposed()) {
-				getDisplay().syncExec(new Runnable() {
-					@Override
-					public void run() {
-						if (!table.isDisposed()) { // Make sure the user didn't close the project properties dialog
-							setItems(modules, modulesToSelect);
-							strategy.afterRepopulation();
-						}
-					}
-				});
-			}
-			return Status.OK_STATUS;
-		}
-	}
-
-	/** Convenience method which sets both enablement and visibility, then lays out this control */
-	public void setEnabledAndVisible(boolean value) {
-		this.setEnabled(value);
-		this.setVisible(value);
-		this.layout(true, true);
-	}
-
-	/** Sets the text for this checklist's {@link Group} control. */
-	public void setTitle(String description) {
-		group.setText(description);
-		this.layout(true, true);
-	}
-}
diff --git a/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/SearchableSelectionList.java b/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/SearchableSelectionList.java
index d4d8aa3..ecdce24 100644
--- a/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/SearchableSelectionList.java
+++ b/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/SearchableSelectionList.java
@@ -56,7 +56,7 @@
  * <p>
  * Typically, a {@link SearchableSelectionList} is used as follows.
  * <ol>
- * <li>Invoke the constructor, {@link SearchableSelectionList#SearchableChecklist(Composite)}.
+ * <li>Invoke the constructor, {@link SearchableSelectionList#SearchableSelectionList(Composite)}.
  * <li>Customize the title, label, and column headings using {@link #setTitle(String)}, {@link #setInstructions(String)}/
  * {@link #setInstructions(String, int)}, and {@link #setColumnHeaders(String, String)}, respectively.
  * <li>If necessary, invoke {@link #setComparator(Comparator)} to change how items are sorted.
@@ -326,7 +326,7 @@
 	private void createLowerButtons() {
 		fReloadButton = new Button(fMainGroup, SWT.PUSH);
 		fReloadButton.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false));
-		fReloadButton.setText(Messages.SearchableChecklist_ReloadList);
+		fReloadButton.setText(Messages.SearchableSelectionList_ReloadList);
 	}
 
 	private void createRightButtons() {
@@ -419,7 +419,7 @@
 
 	private void createTableWithSearchBox() {
 		final Label filter = new Label(fMainGroup, SWT.WRAP);
-		filter.setText(Messages.SearchableChecklist_SearchBoxLabel);
+		filter.setText(Messages.SearchableSelectionList_SearchBoxLabel);
 		filter.setForeground(this.getDisplay().getSystemColor(
 				SWT.COLOR_WIDGET_DARK_SHADOW));
 
diff --git a/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/messages/Messages.java b/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/messages/Messages.java
index 6dd20f2..1ca471f 100644
--- a/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/messages/Messages.java
+++ b/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/messages/Messages.java
@@ -31,10 +31,8 @@
 	public static String EnvManagerChecklist_UpdatingChecklist;
 	public static String EnvManagerConfigButton_ConfigureButtonText;
 	public static String EnvManagerConfigButton_EnvConfigurationDialogTitle;
-	public static String SearchableChecklist_ClearSelection;
-	public static String SearchableChecklist_ReloadList;
-	public static String SearchableChecklist_SearchBoxLabel;
-	public static String SearchableChecklist_SelectDefaults;
+	public static String SearchableSelectionList_ReloadList;
+	public static String SearchableSelectionList_SearchBoxLabel;
 	public static String SearchableSelectionList_Add;
 	public static String SearchableSelectionList_Down;
 	public static String SearchableSelectionList_Remove;
diff --git a/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/messages/messages.properties b/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/messages/messages.properties
index aa54bbf..8e988d0 100644
--- a/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/messages/messages.properties
+++ b/core/org.eclipse.ptp.ems.ui/src/org/eclipse/ptp/internal/ems/ui/messages/messages.properties
@@ -16,10 +16,8 @@
 EnvManagerConfigButton_ConfigureButtonText=&Configure...
 EnvManagerConfigButton_EnvConfigurationDialogTitle=Configure Environment Management System
 
-SearchableChecklist_ClearSelection=Clear Selection
-SearchableChecklist_ReloadList=&Reload List
-SearchableChecklist_SearchBoxLabel=Filter list (* = any string, ? = any character):
-SearchableChecklist_SelectDefaults=Select Defaults
+SearchableSelectionList_ReloadList=&Reload List
+SearchableSelectionList_SearchBoxLabel=Filter list (* = any string, ? = any character):
 SearchableSelectionList_Add=Add ->
 SearchableSelectionList_Down=Down
 SearchableSelectionList_Remove=<- Remove
diff --git a/core/org.eclipse.ptp.launch/META-INF/MANIFEST.MF b/core/org.eclipse.ptp.launch/META-INF/MANIFEST.MF
index 6e0fc42..54b515e 100644
--- a/core/org.eclipse.ptp.launch/META-INF/MANIFEST.MF
+++ b/core/org.eclipse.ptp.launch/META-INF/MANIFEST.MF
@@ -11,8 +11,8 @@
  org.eclipse.core.runtime,
  org.eclipse.core.filesystem,
  org.eclipse.debug.ui,
- org.eclipse.ptp.remote.core,
- org.eclipse.ptp.remote.ui,
+ org.eclipse.remote.core,
+ org.eclipse.remote.ui,
  org.eclipse.ptp.core,
  org.eclipse.ptp.debug.core,
  org.eclipse.ptp.debug.ui,
@@ -35,4 +35,4 @@
  org.eclipse.ptp.launch.rulesengine;x-internal:=true,
  org.eclipse.ptp.launch.ui;x-friends:="org.eclipse.ptp.rcp.sysmon",
  org.eclipse.ptp.launch.ui.extensions;x-friends:="org.eclipse.ptp.etfw.launch",
- org.eclipse.ptp.launch.ui.tabs;x-friends:="org.eclipse.ptp.etfw.parallel,org.eclipse.ptp.rcp.sysmon"
+ org.eclipse.ptp.launch.ui.tabs;x-friends:="org.eclipse.ptp.etfw.parallel,org.eclipse.ptp.rcp.sysmon,org.eclipse.ptp.etfw.launch"
diff --git a/core/org.eclipse.ptp.launch/pom.xml b/core/org.eclipse.ptp.launch/pom.xml
index 9fb677c..f9dc3a0 100644
--- a/core/org.eclipse.ptp.launch/pom.xml
+++ b/core/org.eclipse.ptp.launch/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/AbstractParallelLaunchConfigurationDelegate.java b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/AbstractParallelLaunchConfigurationDelegate.java
index 4fe4920..1cdc65f 100644
--- a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/AbstractParallelLaunchConfigurationDelegate.java
+++ b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/AbstractParallelLaunchConfigurationDelegate.java
@@ -59,15 +59,15 @@
 import org.eclipse.ptp.launch.rulesengine.ISynchronizationRule;
 import org.eclipse.ptp.launch.rulesengine.RuleActionFactory;
 import org.eclipse.ptp.launch.rulesengine.RuleFactory;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
 import org.eclipse.ptp.rm.jaxb.control.core.ILaunchController;
 import org.eclipse.ptp.rm.lml.monitor.core.IMonitorControl;
 import org.eclipse.ptp.rm.lml.monitor.core.MonitorControlManager;
 import org.eclipse.ptp.rm.lml.ui.ILMLUIConstants;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnectionManager;
+import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.RemoteServices;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.IWorkbenchWindow;
@@ -220,7 +220,7 @@
 		IRemoteServices localServices = RemoteServices.getLocalServices();
 		IRemoteConnectionManager lconnMgr = localServices.getConnectionManager();
 		IRemoteConnection lconn = lconnMgr.getConnection(IRemoteConnectionManager.LOCAL_CONNECTION_NAME);
-		return localServices.getFileManager(lconn);
+		return lconn.getFileManager();
 	}
 
 	/**
@@ -231,9 +231,17 @@
 	 */
 	public static IRemoteFileManager getRemoteFileManager(ILaunchConfiguration configuration, IProgressMonitor monitor)
 			throws CoreException {
-		IRemoteConnection conn = RMLaunchUtils.getRemoteConnection(configuration, monitor);
+		SubMonitor progress = SubMonitor.convert(monitor, 10);
+		IRemoteConnection conn = RMLaunchUtils.getRemoteConnection(configuration, progress.newChild(5));
 		if (conn != null) {
-			return conn.getRemoteServices().getFileManager(conn);
+			if (!conn.isOpen()) {
+				conn.open(progress.newChild(5));
+				if (!progress.isCanceled() && !conn.isOpen()) {
+					throw new CoreException(new Status(IStatus.ERROR, PTPLaunchPlugin.getUniqueIdentifier(),
+							Messages.AbstractParallelLaunchConfigurationDelegate_Connection_is_not_open));
+				}
+			}
+			return conn.getFileManager();
 		}
 		return null;
 	}
@@ -742,19 +750,23 @@
 	 * @since 5.0
 	 */
 	protected IPath verifyResource(String path, ILaunchConfiguration configuration, IProgressMonitor monitor) throws CoreException {
-		IRemoteFileManager fileManager = getRemoteFileManager(configuration, monitor);
-		if (monitor.isCanceled()) {
-			return null;
+		SubMonitor progress = SubMonitor.convert(monitor, 10);
+		IRemoteFileManager fileManager = getRemoteFileManager(configuration, progress.newChild(5));
+		if (!monitor.isCanceled()) {
+			if (fileManager == null) {
+				throw new CoreException(new Status(IStatus.ERROR, PTPLaunchPlugin.getUniqueIdentifier(),
+						Messages.AbstractParallelLaunchConfigurationDelegate_unableToObtainConnectionInfo));
+			}
+			boolean exists = fileManager.getResource(path).fetchInfo(EFS.NONE, progress.newChild(5)).exists();
+			if (!progress.isCanceled()) {
+				if (!exists) {
+					throw new CoreException(new Status(IStatus.ERROR, PTPLaunchPlugin.getUniqueIdentifier(), NLS.bind(
+							Messages.AbstractParallelLaunchConfigurationDelegate_Path_not_found, new Object[] { path })));
+				}
+				return new Path(path);
+			}
 		}
-		if (fileManager == null) {
-			throw new CoreException(new Status(IStatus.ERROR, PTPLaunchPlugin.getUniqueIdentifier(),
-					Messages.AbstractParallelLaunchConfigurationDelegate_unableToObtainConnectionInfo));
-		}
-		if (!fileManager.getResource(path).fetchInfo().exists()) {
-			throw new CoreException(new Status(IStatus.ERROR, PTPLaunchPlugin.getUniqueIdentifier(), NLS.bind(
-					Messages.AbstractParallelLaunchConfigurationDelegate_Path_not_found, new Object[] { path })));
-		}
-		return new Path(path);
+		return null;
 	}
 
 	/**
diff --git a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/RMLaunchUtils.java b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/RMLaunchUtils.java
index 3318a02..11a4b98 100644
--- a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/RMLaunchUtils.java
+++ b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/RMLaunchUtils.java
@@ -14,13 +14,13 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.debug.core.ILaunchConfiguration;
 import org.eclipse.ptp.core.util.LaunchUtils;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
 import org.eclipse.ptp.rm.jaxb.control.core.ILaunchController;
 import org.eclipse.ptp.rm.jaxb.control.core.LaunchControllerManager;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnectionManager;
+import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.RemoteServices;
 
 /**
  * Utility methods for managing launch configuration attributes.
@@ -85,7 +85,7 @@
 		IRemoteServices localServices = RemoteServices.getLocalServices();
 		IRemoteConnectionManager lconnMgr = localServices.getConnectionManager();
 		IRemoteConnection lconn = lconnMgr.getConnection(IRemoteConnectionManager.LOCAL_CONNECTION_NAME);
-		return localServices.getFileManager(lconn);
+		return lconn.getFileManager();
 	}
 
 	/**
@@ -100,7 +100,7 @@
 			throws CoreException {
 		IRemoteConnection conn = getRemoteConnection(configuration, monitor);
 		if (!monitor.isCanceled()) {
-			return conn.getRemoteServices().getFileManager(conn);
+			return conn.getFileManager();
 		}
 		return null;
 	}
diff --git a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/internal/messages/Messages.java b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/internal/messages/Messages.java
index 2b0e9cb..9548417 100644
--- a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/internal/messages/Messages.java
+++ b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/internal/messages/Messages.java
@@ -134,6 +134,8 @@
 	public static String AbstractParallelLaunchConfigurationDelegate_launchType2;
 	public static String AbstractParallelLaunchConfigurationDelegate_launchType3;
 	public static String AbstractParallelLaunchConfigurationDelegate_ConfirmActions;
+
+	public static String AbstractParallelLaunchConfigurationDelegate_Connection_is_not_open;
 	public static String AbstractParallelLaunchConfigurationDelegate_Specified_resource_manager_not_found;
 	public static String AbstractParallelLaunchConfigurationDelegate_Path_not_found;
 	public static String AbstractParallelLaunchConfigurationDelegate_unableToObtainConnectionInfo;
diff --git a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/internal/messages/messages.properties b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/internal/messages/messages.properties
index cbe8351..008acf0 100644
--- a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/internal/messages/messages.properties
+++ b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/internal/messages/messages.properties
@@ -128,6 +128,7 @@
 AbstractParallelLaunchConfigurationDelegate_launchType2=This launch type allows monitoring of system and job information. Do you want to start monitoring (will switch to System Monitoring perspective if necessary)?
 AbstractParallelLaunchConfigurationDelegate_launchType3=This launch type allows monitoring of system and job information. Do you want to switch to the System Monitoring perspective now?
 AbstractParallelLaunchConfigurationDelegate_ConfirmActions=Confirm Actions
+AbstractParallelLaunchConfigurationDelegate_Connection_is_not_open=Connection is not open
 AbstractParallelLaunchConfigurationDelegate_UnableToDetermineJobStatus=Unable to determine status of job submission, post launch operations abandoned
 AbstractParallelLaunchConfigurationDelegate_Specified_resource_manager_not_found=Specified resource manager not found or is not available
 AbstractParallelLaunchConfigurationDelegate_Path_not_found=Path "{0}" not found
@@ -261,8 +262,8 @@
 ViewExcludedTooltip=Inspect the list (if any) of dynamically discovered variables that are not exported for configuration ("invisible")
 DefaultValues=Restore Defaults
 BatchScriptPath=Script Path:
-JAXBRMConfigurationSelectionWizardPage_1=Browse Workspace
-ClearScript=Clear Script
+JAXBRMConfigurationSelectionWizardPage_1=Browse
+ClearScript=Clear
 OverrideEnvironment=Relevant Environment Settings
 OverrideEnvironmentTooltip=Select (and modify) variables necessary to run the uploaded script.
 ReadOnlyWarning=Editor window is for display only; to edit script, import it into the workspace.
diff --git a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/internal/rulesengine/DownloadBackAction.java b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/internal/rulesengine/DownloadBackAction.java
index 3d58670..d8c4b91 100755
--- a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/internal/rulesengine/DownloadBackAction.java
+++ b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/internal/rulesengine/DownloadBackAction.java
@@ -21,7 +21,7 @@
 import org.eclipse.debug.core.ILaunchConfiguration;
 import org.eclipse.ptp.launch.RMLaunchUtils;
 import org.eclipse.ptp.launch.rulesengine.IRuleAction;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteFileManager;
 
 /**
  * TODO NEEDS TO BE DOCUMENTED
diff --git a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/internal/rulesengine/DownloadRuleAction.java b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/internal/rulesengine/DownloadRuleAction.java
index 2debbda..bcd7772 100755
--- a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/internal/rulesengine/DownloadRuleAction.java
+++ b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/internal/rulesengine/DownloadRuleAction.java
@@ -26,7 +26,7 @@
 import org.eclipse.ptp.launch.RMLaunchUtils;
 import org.eclipse.ptp.launch.rulesengine.IRuleAction;
 import org.eclipse.ptp.launch.rulesengine.OverwritePolicies;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteFileManager;
 
 /**
  * TODO NEEDS TO BE DOCUMENTED
@@ -79,10 +79,10 @@
 		// Download all remote paths
 		IPath remotePaths[] = fRule.getRemoteFilesAsPathArray();
 		IPath remoteWorkingPath = new Path(fConfiguration.getAttribute(IPTPLaunchConfigurationConstants.ATTR_EXECUTABLE_PATH, "")).removeLastSegments(1); //$NON-NLS-1$
-		for (int i = 0; i < remotePaths.length; i++) {
+		for (IPath remotePath2 : remotePaths) {
 			progress.setWorkRemaining(100);
 
-			IPath remotePath = remotePaths[i];
+			IPath remotePath = remotePath2;
 
 			// Make paths absolute
 			if (!remotePath.isAbsolute()) {
diff --git a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/internal/rulesengine/UploadRuleAction.java b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/internal/rulesengine/UploadRuleAction.java
index b9f2cf7..76d9141 100755
--- a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/internal/rulesengine/UploadRuleAction.java
+++ b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/internal/rulesengine/UploadRuleAction.java
@@ -26,7 +26,7 @@
 import org.eclipse.ptp.launch.RMLaunchUtils;
 import org.eclipse.ptp.launch.rulesengine.IRuleAction;
 import org.eclipse.ptp.launch.rulesengine.OverwritePolicies;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteFileManager;
 
 /**
  * TODO NEEDS TO BE DOCUMENTED
@@ -90,11 +90,9 @@
 		/*
 		 * Process paths.
 		 */
-		for (int i = 0; i < localPaths.length; i++) {
+		for (IPath localPath : localPaths) {
 			progress.setWorkRemaining(100);
 
-			IPath localPath = localPaths[i];
-
 			IRemoteFileManager localFileManager = RMLaunchUtils.getLocalFileManager(fConfiguration);
 			IFileStore localFileStore = localFileManager.getResource(localPath.toString());
 			IFileInfo localFileInfo = localFileStore.fetchInfo(EFS.NONE, progress.newChild(5));
diff --git a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/rulesengine/ILaunchProcessCallback.java b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/rulesengine/ILaunchProcessCallback.java
index 7d19636..ef9a6b1 100755
--- a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/rulesengine/ILaunchProcessCallback.java
+++ b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/rulesengine/ILaunchProcessCallback.java
@@ -14,7 +14,7 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteFileManager;
 
 /**
  * TODO NEEDS TO BE DOCUMENTED
diff --git a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/extensions/ExtensibleJAXBControllerTab.java b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/extensions/ExtensibleJAXBControllerTab.java
index 753c807..adc4f4d 100644
--- a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/extensions/ExtensibleJAXBControllerTab.java
+++ b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/extensions/ExtensibleJAXBControllerTab.java
@@ -149,8 +149,6 @@
 		String lastTab = null;
 		String key = null;
 		try {
-			key = controlId + JAXBUIConstants.DOT + JAXBUIConstants.INITIALIZED;
-			initialized = configuration.getAttribute(key, false);
 			key = controlId + JAXBUIConstants.DOT + JAXBUIConstants.CURRENT_CONTROLLER;
 			lastTab = configuration.getAttribute(key, JAXBUIConstants.ZEROSTR);
 		} catch (CoreException t1) {
@@ -178,20 +176,11 @@
 			}
 		}
 
-		if (!initialized) {
-			for (AbstractJAXBLaunchConfigurationTab tabControl : tabControllers) {
-				try {
-					tabControl.refreshLocal(configuration.getWorkingCopy());
-				} catch (CoreException t) {
-					return new RMLaunchValidation(false, t.getLocalizedMessage());
-				}
-			}
+		for (AbstractJAXBLaunchConfigurationTab tabControl : tabControllers) {
 			try {
-				ILaunchConfigurationWorkingCopy wc = configuration.getWorkingCopy();
-				wc.setAttribute(controlId + JAXBUIConstants.DOT + JAXBUIConstants.INITIALIZED, true);
-				wc.doSave();
+				tabControl.refreshLocal(configuration.getWorkingCopy());
 			} catch (CoreException t) {
-				JAXBUIPlugin.log(t);
+				return new RMLaunchValidation(false, t.getLocalizedMessage());
 			}
 		}
 		return resultValidation;
diff --git a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/extensions/JAXBControllerLaunchConfigurationTab.java b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/extensions/JAXBControllerLaunchConfigurationTab.java
index 8d5840b..1be9a96 100644
--- a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/extensions/JAXBControllerLaunchConfigurationTab.java
+++ b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/extensions/JAXBControllerLaunchConfigurationTab.java
@@ -24,15 +24,16 @@
 import org.eclipse.ptp.internal.rm.jaxb.control.ui.utils.WidgetActionUtils;
 import org.eclipse.ptp.internal.rm.jaxb.control.ui.variables.LCVariableMap;
 import org.eclipse.ptp.launch.internal.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.RemoteServicesUtils;
 import org.eclipse.ptp.rm.jaxb.control.core.ILaunchController;
 import org.eclipse.ptp.rm.jaxb.control.ui.IUpdateHandler;
 import org.eclipse.ptp.rm.jaxb.control.ui.IUpdateModelEnabled;
+import org.eclipse.ptp.rm.jaxb.core.IVariableMap;
 import org.eclipse.ptp.rm.jaxb.core.data.LaunchTabType;
 import org.eclipse.ptp.rm.jaxb.core.data.ResourceManagerData;
 import org.eclipse.ptp.rm.jaxb.core.data.ScriptType;
 import org.eclipse.ptp.rm.jaxb.core.data.TabControllerType;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.RemoteServicesUtils;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.widgets.Composite;
@@ -114,8 +115,6 @@
 					addDynamicTab(new JAXBImportedScriptLaunchConfigurationTab(control, importTab, this));
 				}
 			}
-			varMap = new LCVariableMap();
-			varMap.setEnvManager(getEnvManager(progress.newChild(10)));
 		} else {
 			getControllers().clear();
 			launchTabData = null;
@@ -268,4 +267,9 @@
 	public void widgetSelected(SelectionEvent e) {
 		setVisibleOnSelected();
 	}
+
+	public IVariableMap getRMVariableMap() {
+		return null;
+	}
+
 }
diff --git a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/extensions/JAXBDynamicLaunchConfigurationTab.java b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/extensions/JAXBDynamicLaunchConfigurationTab.java
index 3d927d0..01f53db 100644
--- a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/extensions/JAXBDynamicLaunchConfigurationTab.java
+++ b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/extensions/JAXBDynamicLaunchConfigurationTab.java
@@ -48,7 +48,6 @@
 import org.eclipse.ptp.internal.rm.jaxb.ui.util.WidgetBuilderUtils;
 import org.eclipse.ptp.launch.PTPLaunchPlugin;
 import org.eclipse.ptp.launch.internal.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
 import org.eclipse.ptp.rm.jaxb.control.core.ILaunchController;
 import org.eclipse.ptp.rm.jaxb.control.ui.ICellEditorUpdateModel;
 import org.eclipse.ptp.rm.jaxb.control.ui.IUpdateHandler;
@@ -56,6 +55,7 @@
 import org.eclipse.ptp.rm.jaxb.core.IVariableMap;
 import org.eclipse.ptp.rm.jaxb.core.data.ButtonActionType;
 import org.eclipse.ptp.rm.jaxb.core.data.TabControllerType;
+import org.eclipse.remote.core.IRemoteConnection;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
@@ -83,8 +83,8 @@
  * @author Jeff Overbey - Environment Manager support
  * @since 7.0
  */
-public class JAXBDynamicLaunchConfigurationTab extends AbstractJAXBLaunchConfigurationTab implements
-		IJAXBLaunchConfigurationTab, SelectionListener {
+public class JAXBDynamicLaunchConfigurationTab extends AbstractJAXBLaunchConfigurationTab implements IJAXBLaunchConfigurationTab,
+		SelectionListener {
 
 	protected final ILaunchController fControl;
 	protected final IUpdateHandler updateHandler;
@@ -97,6 +97,7 @@
 	protected TabControllerType controller;
 	protected String[] shared;
 	protected final Collection<IUpdateModel> sharedModels;
+	protected boolean checkCycles = true;
 
 	/**
 	 * @param control
@@ -163,7 +164,7 @@
 			if (listeners != null) {
 				listeners.clear();
 			}
-			control = builder.build(parent);
+			control = builder.build(parent, checkCycles);
 		} catch (CoreException e) {
 			throw CoreExceptionUtils.newException(NLS.bind(Messages.CreateControlConfigurableError, title), e);
 		}
@@ -261,7 +262,13 @@
 			}
 
 			LCVariableMap lcMap = parentTab.getVariableMap();
-			IVariableMap rmMap = fControl.getEnvironment();
+			IVariableMap rmMap = null;
+			if (parentTab.getRMVariableMap() != null) {
+				rmMap = parentTab.getRMVariableMap();
+			} else {
+				rmMap = fControl.getEnvironment();
+			}
+			fControl.getEnvironment();
 
 			for (IUpdateModel m : localWidgets.values()) {
 				m.initialize(configuration, rmMap, lcMap);
@@ -762,4 +769,18 @@
 		}
 		lcMap.putValue(JAXBUIConstants.VALID + id, list.toString().trim());
 	}
+
+	public boolean isCheckCycles() {
+		return checkCycles;
+	}
+
+	/**
+	 * Check for cyclical dependencies among JAXB widgets
+	 * 
+	 * @param checkCycles
+	 *            specifies whether to check for cyclical dependencies
+	 */
+	public void setCheckCycles(boolean checkCycles) {
+		this.checkCycles = checkCycles;
+	}
 }
diff --git a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/tabs/ApplicationTab.java b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/tabs/ApplicationTab.java
index 7f46ea3..863f836 100644
--- a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/tabs/ApplicationTab.java
+++ b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/tabs/ApplicationTab.java
@@ -46,14 +46,14 @@
 import org.eclipse.ptp.launch.RMLaunchUtils;
 import org.eclipse.ptp.launch.internal.messages.Messages;
 import org.eclipse.ptp.launch.ui.LaunchImages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteResource;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
-import org.eclipse.ptp.remote.ui.IRemoteUIFileManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIServices;
-import org.eclipse.ptp.remote.ui.RemoteUIServices;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnectionManager;
+import org.eclipse.remote.core.IRemoteResource;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.RemoteServices;
+import org.eclipse.remote.ui.IRemoteUIFileManager;
+import org.eclipse.remote.ui.IRemoteUIServices;
+import org.eclipse.remote.ui.RemoteUIServices;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
diff --git a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/tabs/LaunchConfigurationTab.java b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/tabs/LaunchConfigurationTab.java
index 3278a25..7a2eb9b 100644
--- a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/tabs/LaunchConfigurationTab.java
+++ b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/tabs/LaunchConfigurationTab.java
@@ -57,7 +57,7 @@
 		// cache the launch configuration for updates
 		setLaunchConfiguration(configuration);
 	}
-
+	
 	/**
 	 * Cache the launch configuration
 	 * 
diff --git a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/tabs/ResourcesTab.java b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/tabs/ResourcesTab.java
index 64aa229..6e92b74 100644
--- a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/tabs/ResourcesTab.java
+++ b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/tabs/ResourcesTab.java
@@ -44,12 +44,12 @@
 import org.eclipse.ptp.launch.ui.extensions.IRMLaunchConfigurationDynamicTab;
 import org.eclipse.ptp.launch.ui.extensions.JAXBControllerLaunchConfigurationTab;
 import org.eclipse.ptp.launch.ui.extensions.RMLaunchValidation;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
-import org.eclipse.ptp.remote.ui.widgets.RemoteConnectionWidget;
 import org.eclipse.ptp.rm.jaxb.control.core.ILaunchController;
 import org.eclipse.ptp.rm.jaxb.control.core.LaunchControllerManager;
 import org.eclipse.ptp.rm.jaxb.core.data.MonitorType;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
+import org.eclipse.remote.ui.widgets.RemoteConnectionWidget;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.ScrolledComposite;
 import org.eclipse.swt.events.SelectionAdapter;
@@ -119,6 +119,8 @@
 
 	private final ContentsChangedListener launchContentsChangedListener = new ContentsChangedListener();
 
+	private boolean fIsInitialized;
+
 	/*
 	 * (non-Javadoc)
 	 * 
@@ -462,6 +464,10 @@
 	}
 
 	/*
+	 * initialzeFrom gets called when a launch configuration is created or edited, as well as every time the Resources tab is
+	 * activated. We need to make sure that the tab dynamic controls are only created and initialized with default or saved values
+	 * once.
+	 * 
 	 * (non-Javadoc)
 	 * 
 	 * @see org.eclipse.ptp.launch.ui.tabs.LaunchConfigurationTab#initializeFrom(org.eclipse.debug.core.ILaunchConfiguration)
@@ -469,45 +475,62 @@
 	@Override
 	public void initializeFrom(ILaunchConfiguration configuration) {
 		super.initializeFrom(configuration);
-
 		final String rmType = LaunchUtils.getTemplateName(configuration);
 		final String remId = LaunchUtils.getRemoteServicesId(configuration);
 		final String remName = LaunchUtils.getConnectionName(configuration);
-		if (rmType != null && remId != null && remName != null) {
-			fSystemTypeCombo.select(fProviders.lastIndexOf(rmType) + 1);
-			updateEnablement();
-			/*
-			 * Only stop the controller if something has changed.
-			 */
-			if (fLaunchControl != null
-					&& (!fLaunchControl.getConfiguration().getName().equals(rmType)
-							|| !fLaunchControl.getRemoteServicesId().equals(remId) || !fLaunchControl.getConnectionName().equals(
-							remName))) {
+
+		boolean fControlChanged = fLaunchControl != null
+				&& (!fLaunchControl.getConfiguration().getName().equals(rmType)
+						|| !fLaunchControl.getRemoteServicesId().equals(remId) || !fLaunchControl.getConnectionName()
+						.equals(remName));
+		if (!fIsInitialized || fControlChanged) {
+			if (rmType != null && remId != null && remName != null) {
+				fSystemTypeCombo.select(fProviders.lastIndexOf(rmType) + 1);
+				updateEnablement();
+				/*
+				 * Only stop the controller if something has changed.
+				 */
+				if (fControlChanged) {
+					stopController(fLaunchControl);
+					fLaunchControl = null;
+				}
+				/*
+				 * Set the connection and see if the user wants to open it. If yes, create a new controller if one doesn't
+				 * already exist. If no, revert to no connection selected.
+				 */
+				fRemoteConnectionWidget.setConnection(remId, remName);
+				IRemoteConnection conn = fRemoteConnectionWidget.getConnection();
+				if (conn != null) {
+					ILaunchController control = getNewController(remId, remName, rmType);
+					if (changeConnection(conn, control)) {
+						fRemoteConnection = conn;
+						fLaunchControl = control;
+					} else {
+						fRemoteConnectionWidget.setConnection(null);
+					}
+				}
+				updateLaunchAttributeControls(fLaunchControl, getLaunchConfiguration(), true);
+				updateLaunchConfigurationDialog();
+			} else {
 				stopController(fLaunchControl);
 				fLaunchControl = null;
-			}
-			/*
-			 * Set the connection and see if the user wants to open it. If yes, create a new controller if one doesn't already
-			 * exist. If no, revert to no connection selected.
-			 */
-			fRemoteConnectionWidget.setConnection(remId, remName);
-			IRemoteConnection conn = fRemoteConnectionWidget.getConnection();
-			if (conn != null) {
-				ILaunchController control = getNewController(remId, remName, rmType);
-				if (changeConnection(conn, control)) {
-					fRemoteConnection = conn;
-					fLaunchControl = control;
-				} else {
-					fRemoteConnectionWidget.setConnection(null);
+				fRemoteConnection = null;
+				updateEnablement();
+				
+				// Undo selection made if there is one
+				if (rmType == null) {
+					fSystemTypeCombo.select(0);
+
+					// select the default message; thus if user types a filter string immediately, it will replace it
+					fSystemTypeCombo.setSelection(new Point(0, Messages.ResourcesTab_pleaseSelectTargetSystem.length()));
 				}
+				updateLaunchAttributeControls(fLaunchControl, getLaunchConfiguration(), false);
+				updateLaunchConfigurationDialog();
 			}
+			fIsInitialized = true;
+		} else {
 			updateLaunchAttributeControls(fLaunchControl, getLaunchConfiguration(), true);
 			updateLaunchConfigurationDialog();
-		} else {
-			stopController(fLaunchControl);
-			fLaunchControl = null;
-			fRemoteConnection = null;
-			updateEnablement();
 		}
 	}
 
diff --git a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/tabs/WorkingDirectoryBlock.java b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/tabs/WorkingDirectoryBlock.java
index 57c7ad5..b9b681e 100644
--- a/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/tabs/WorkingDirectoryBlock.java
+++ b/core/org.eclipse.ptp.launch/src/org/eclipse/ptp/launch/ui/tabs/WorkingDirectoryBlock.java
@@ -33,10 +33,10 @@
 import org.eclipse.ptp.core.IPTPLaunchConfigurationConstants;
 import org.eclipse.ptp.launch.RMLaunchUtils;
 import org.eclipse.ptp.launch.internal.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.ui.IRemoteUIFileManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIServices;
-import org.eclipse.ptp.remote.ui.RemoteUIServices;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.ui.IRemoteUIFileManager;
+import org.eclipse.remote.ui.IRemoteUIServices;
+import org.eclipse.remote.ui.RemoteUIServices;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
diff --git a/core/org.eclipse.ptp.proxy.protocol/pom.xml b/core/org.eclipse.ptp.proxy.protocol/pom.xml
index 6ebebdd..e1abcb5 100644
--- a/core/org.eclipse.ptp.proxy.protocol/pom.xml
+++ b/core/org.eclipse.ptp.proxy.protocol/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/core/org.eclipse.ptp.proxy/META-INF/MANIFEST.MF b/core/org.eclipse.ptp.proxy/META-INF/MANIFEST.MF
index 91e17da..0e56819 100644
--- a/core/org.eclipse.ptp.proxy/META-INF/MANIFEST.MF
+++ b/core/org.eclipse.ptp.proxy/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.ptp.proxy
-Bundle-Version: 7.0.5.qualifier
+Bundle-Version: 8.0.0.qualifier
 Bundle-Vendor: %pluginProvider
 Bundle-Localization: plugin
diff --git a/core/org.eclipse.ptp.proxy/pom.xml b/core/org.eclipse.ptp.proxy/pom.xml
index e1320fd..87fa4e1 100644
--- a/core/org.eclipse.ptp.proxy/pom.xml
+++ b/core/org.eclipse.ptp.proxy/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.proxy</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
     <build>
diff --git a/core/org.eclipse.ptp.remote.core.tests/.classpath b/core/org.eclipse.ptp.remote.core.tests/.classpath
deleted file mode 100644
index 64c5e31..0000000
--- a/core/org.eclipse.ptp.remote.core.tests/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/core/org.eclipse.ptp.remote.core.tests/.project b/core/org.eclipse.ptp.remote.core.tests/.project
deleted file mode 100644
index 9f0f2fe..0000000
--- a/core/org.eclipse.ptp.remote.core.tests/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ptp.remote.core.tests</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/core/org.eclipse.ptp.remote.core.tests/.settings/org.eclipse.jdt.core.prefs b/core/org.eclipse.ptp.remote.core.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index d809501..0000000
--- a/core/org.eclipse.ptp.remote.core.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,73 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/core/org.eclipse.ptp.remote.core.tests/META-INF/MANIFEST.MF b/core/org.eclipse.ptp.remote.core.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index 3a46d05..0000000
--- a/core/org.eclipse.ptp.remote.core.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,17 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.ptp.remote.core.tests;singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: %pluginProvider
-Require-Bundle: org.eclipse.core.runtime,
- org.junit,
- org.eclipse.ptp.remote.core;bundle-version="3.0.0",
- org.eclipse.ptp.remote.ui;bundle-version="3.0.0",
- com.jcraft.jsch;bundle-version="0.1.41",
- org.eclipse.core.filesystem;bundle-version="1.2.0",
- org.eclipse.ptp.remotetools.core;bundle-version="2.1.9",
- org.eclipse.ptp.remote.remotetools.core;bundle-version="3.0.0",
- org.eclipse.ptp.remotetools.environment.core;bundle-version="1.3.3",
- org.eclipse.ptp.remotetools.environment.generichost;bundle-version="1.4.0"
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/core/org.eclipse.ptp.remote.core.tests/build.properties b/core/org.eclipse.ptp.remote.core.tests/build.properties
deleted file mode 100644
index 34d2e4d..0000000
--- a/core/org.eclipse.ptp.remote.core.tests/build.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .
diff --git a/core/org.eclipse.ptp.remote.core.tests/src/org/eclipse/ptp/core/tests/FileStoreTests.java b/core/org.eclipse.ptp.remote.core.tests/src/org/eclipse/ptp/core/tests/FileStoreTests.java
deleted file mode 100644
index b19b904..0000000
--- a/core/org.eclipse.ptp.remote.core.tests/src/org/eclipse/ptp/core/tests/FileStoreTests.java
+++ /dev/null
@@ -1,141 +0,0 @@
-package org.eclipse.ptp.core.tests;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.net.URI;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.filesystem.EFS;
-import org.eclipse.core.filesystem.IFileStore;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
-
-public class FileStoreTests extends TestCase {
-	private static final String CONNECTION_NAME = "test_connection";
-	private static final String USERNAME = "user";
-	private static final String PASSWORD = "password";
-	private static final String HOST = "localhost";
-	private static final String PATH1 = "/home/user/sftp_test";
-	private static final String PATH2 = PATH1 + "/.file1";
-	private static final String TEST_STRING = "a string containing fairly *()(*&^$%## random text";
-
-	private IRemoteServices fRemoteServices;
-	private IRemoteConnection fRemoteConnection;
-	private IRemoteFileManager fRemoteFileManager;
-
-	public void testFileStore() {
-		URI path1Uri = fRemoteFileManager.toURI(PATH1);
-		URI path2Uri = fRemoteFileManager.toURI(PATH2);
-		assertNotNull(path1Uri);
-		assertNotNull(path2Uri);
-
-		IFileStore store1 = null;
-		IFileStore store2 = null;
-
-		try {
-			store1 = EFS.getStore(path1Uri);
-			store2 = EFS.getStore(path2Uri);
-		} catch (Exception e) {
-			fail(e.getLocalizedMessage());
-		}
-
-		for (int i = 0; i < 5; i++) {
-			assertFalse(store1.fetchInfo().exists());
-			try {
-				store1.mkdir(EFS.NONE, null);
-			} catch (CoreException e) {
-				e.getLocalizedMessage();
-			}
-			assertTrue(store1.fetchInfo().exists());
-
-			assertFalse(store2.fetchInfo().exists());
-			try {
-				OutputStream stream = store2.openOutputStream(EFS.NONE, null);
-				assertNotNull(stream);
-				BufferedWriter buf = new BufferedWriter(new OutputStreamWriter(stream));
-				buf.write(TEST_STRING);
-				buf.close();
-			} catch (Exception e) {
-				e.getLocalizedMessage();
-			}
-			assertTrue(store2.fetchInfo().exists());
-
-			try {
-				InputStream stream = store2.openInputStream(EFS.NONE, null);
-				assertNotNull(stream);
-				BufferedReader buf = new BufferedReader(new InputStreamReader(stream));
-				String line = buf.readLine().trim();
-				assertTrue(line.equals(TEST_STRING));
-				buf.close();
-			} catch (Exception e) {
-				e.getLocalizedMessage();
-			}
-
-			try {
-				store2.delete(EFS.NONE, null);
-			} catch (CoreException e) {
-				e.getLocalizedMessage();
-			}
-			assertFalse(store2.fetchInfo().exists());
-
-			try {
-				store1.delete(EFS.NONE, null);
-			} catch (CoreException e) {
-				e.getLocalizedMessage();
-			}
-			assertFalse(store1.fetchInfo().exists());
-		}
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	@Override
-	protected void setUp() throws Exception {
-		fRemoteServices = RemoteServices.getRemoteServices("org.eclipse.ptp.remote.RemoteTools");
-		assertNotNull(fRemoteServices);
-
-		IRemoteConnectionManager connMgr = fRemoteServices.getConnectionManager();
-		assertNotNull(connMgr);
-
-		try {
-			fRemoteConnection = connMgr.newConnection(CONNECTION_NAME);
-		} catch (RemoteConnectionException e) {
-			fail(e.getLocalizedMessage());
-		}
-		assertNotNull(fRemoteConnection);
-		fRemoteConnection.setAddress(HOST);
-		fRemoteConnection.setUsername(USERNAME);
-		fRemoteConnection.setPassword(PASSWORD);
-
-		fRemoteFileManager = fRemoteServices.getFileManager(fRemoteConnection);
-		assertNotNull(fRemoteFileManager);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	@Override
-	protected void tearDown() throws Exception {
-		fRemoteConnection.close();
-		IRemoteConnectionManager connMgr = fRemoteServices.getConnectionManager();
-		assertNotNull(connMgr);
-		connMgr.removeConnection(fRemoteConnection);
-	}
-
-}
diff --git a/core/org.eclipse.ptp.remote.core.tests/src/org/eclipse/ptp/core/tests/RemoteConnectionTests.java b/core/org.eclipse.ptp.remote.core.tests/src/org/eclipse/ptp/core/tests/RemoteConnectionTests.java
deleted file mode 100644
index 28aaa98..0000000
--- a/core/org.eclipse.ptp.remote.core.tests/src/org/eclipse/ptp/core/tests/RemoteConnectionTests.java
+++ /dev/null
@@ -1,170 +0,0 @@
-package org.eclipse.ptp.core.tests;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.filesystem.EFS;
-import org.eclipse.core.filesystem.IFileInfo;
-import org.eclipse.core.filesystem.IFileStore;
-import org.eclipse.core.filesystem.IFileSystem;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.core.IRemoteProcess;
-import org.eclipse.ptp.remote.core.IRemoteProcessBuilder;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
-
-public class RemoteConnectionTests extends TestCase {
-	private static final String USERNAME = "greg"; //$NON-NLS-1$
-	private static final String PASSWORD = ""; //$NON-NLS-1$
-	private static final String HOST = "localhost"; //$NON-NLS-1$
-
-	private IRemoteServices fRemoteServices;
-	private IRemoteConnection fRemoteConnection;
-
-	public void testEnv() {
-		String var = fRemoteConnection.getEnv("SHELL"); //$NON-NLS-1$
-		assertNotNull(var);
-
-		var = fRemoteConnection.getEnv("FOO_VAR_SHOULD_NOT_BE_DEFINED"); //$NON-NLS-1$
-		assertNull(var);
-
-		assertNotNull(fRemoteConnection.getProperty("os.name")); //$NON-NLS-1$
-		assertNotNull(fRemoteConnection.getProperty("os.arch")); //$NON-NLS-1$
-		assertNotNull(fRemoteConnection.getProperty("os.version")); //$NON-NLS-1$
-		assertNotNull(fRemoteConnection.getProperty("file.separator")); //$NON-NLS-1$
-		assertNotNull(fRemoteConnection.getProperty("path.separator")); //$NON-NLS-1$
-		assertNotNull(fRemoteConnection.getProperty("line.separator")); //$NON-NLS-1$
-
-		IRemoteProcessBuilder builder = fRemoteServices.getProcessBuilder(fRemoteConnection, "env"); //$NON-NLS-1$
-		builder.environment().put("FOO", "BAR"); //$NON-NLS-1$ //$NON-NLS-2$
-		builder.environment().put("USER", "FOO"); //$NON-NLS-1$ //$NON-NLS-2$
-		try {
-			IRemoteProcess proc = builder.start();
-			BufferedReader stdout = new BufferedReader(new InputStreamReader(proc.getInputStream()));
-			String line;
-			while ((line = stdout.readLine()) != null) {
-				String[] kv = line.trim().split("="); //$NON-NLS-1$
-				if (kv.length == 2) {
-					if (kv[0].equals("FOO")) {
-						assertTrue(kv[1].equals("BAR")); //$NON-NLS-1$ //$NON-NLS-2$
-					}
-					if (kv[0].equals("USER")) {
-						assertTrue(kv[1].equals("FOO")); //$NON-NLS-1$ //$NON-NLS-2$
-					}
-				}
-			}
-		} catch (IOException e) {
-			fail(e.getLocalizedMessage());
-		}
-	}
-
-	public void testCopy() {
-		final IRemoteFileManager fileManager = fRemoteServices.getFileManager(fRemoteConnection);
-
-		final IFileSystem fileSystem = EFS.getLocalFileSystem();
-		final IFileStore srcFileStore = fileSystem.getStore(new Path("/tmp/log_src.txt"));
-		final IFileStore dstFileStore = fileManager.getResource("/tmp").getChild("log_dst.txt");
-		try {
-			srcFileStore.delete(EFS.NONE, new NullProgressMonitor());
-			dstFileStore.delete(EFS.NONE, new NullProgressMonitor());
-			OutputStream stream = srcFileStore.openOutputStream(EFS.NONE, new NullProgressMonitor());
-			stream.write(new byte[] { 'f', 'o', 'o', '\n' });
-			stream.close();
-			srcFileStore.copy(dstFileStore, EFS.NONE, new NullProgressMonitor());
-		} catch (CoreException e) {
-			fail(e.getLocalizedMessage());
-		} catch (IOException e) {
-			fail(e.getLocalizedMessage());
-		}
-		IFileInfo srcInfo = srcFileStore.fetchInfo();
-		IFileInfo dstInfo = dstFileStore.fetchInfo();
-		assertTrue(dstInfo.exists());
-		assertTrue(srcInfo.getLength() == dstInfo.getLength());
-		try {
-			InputStream stream = dstFileStore.openInputStream(EFS.NONE, new NullProgressMonitor());
-			byte[] b = new byte[4];
-			stream.read(b);
-			stream.close();
-			assertTrue(b[0] == 'f');
-			assertTrue(b[1] == 'o');
-			assertTrue(b[2] == 'o');
-			assertTrue(b[3] == '\n');
-		} catch (CoreException e) {
-			fail(e.getLocalizedMessage());
-		} catch (IOException e) {
-			fail(e.getLocalizedMessage());
-		}
-
-		// try {
-		// srcFileStore.delete(EFS.NONE, new NullProgressMonitor());
-		// dstFileStore.delete(EFS.NONE, new NullProgressMonitor());
-		// } catch (CoreException e) {
-		// fail();
-		// }
-	}
-
-	public void testWd() {
-		String oldWd = fRemoteConnection.getWorkingDirectory();
-		assertFalse(oldWd.equals("/"));
-		String newWd = "/tmp";
-		fRemoteConnection.setWorkingDirectory(newWd);
-		String wd = fRemoteConnection.getWorkingDirectory();
-		assertEquals(newWd, wd);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	@Override
-	protected void setUp() throws Exception {
-		fRemoteServices = RemoteServices.getRemoteServices("org.eclipse.ptp.remote.RemoteTools"); //$NON-NLS-1$
-		assertNotNull(fRemoteServices);
-
-		IRemoteConnectionManager connMgr = fRemoteServices.getConnectionManager();
-		assertNotNull(connMgr);
-
-		try {
-			fRemoteConnection = connMgr.newConnection("test_connection"); //$NON-NLS-1$
-		} catch (RemoteConnectionException e) {
-			fail(e.getLocalizedMessage());
-		}
-		assertNotNull(fRemoteConnection);
-		fRemoteConnection.setAddress(HOST);
-		fRemoteConnection.setUsername(USERNAME);
-		fRemoteConnection.setPassword(PASSWORD);
-
-		try {
-			fRemoteConnection.open(new NullProgressMonitor());
-		} catch (RemoteConnectionException e) {
-			fail(e.getLocalizedMessage());
-		}
-		assertTrue(fRemoteConnection.isOpen());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	@Override
-	protected void tearDown() throws Exception {
-		fRemoteConnection.close();
-		IRemoteConnectionManager connMgr = fRemoteServices.getConnectionManager();
-		assertNotNull(connMgr);
-		connMgr.removeConnection(fRemoteConnection);
-	}
-
-}
diff --git a/core/org.eclipse.ptp.remote.core.tests/src/org/eclipse/ptp/core/tests/RemoteProcessTests.java b/core/org.eclipse.ptp.remote.core.tests/src/org/eclipse/ptp/core/tests/RemoteProcessTests.java
deleted file mode 100644
index 43bc973..0000000
--- a/core/org.eclipse.ptp.remote.core.tests/src/org/eclipse/ptp/core/tests/RemoteProcessTests.java
+++ /dev/null
@@ -1,139 +0,0 @@
-package org.eclipse.ptp.core.tests;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteProcess;
-import org.eclipse.ptp.remote.core.IRemoteProcessBuilder;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
-
-public class RemoteProcessTests extends TestCase {
-	private static final String USERNAME = "greg"; //$NON-NLS-1$
-	private static final String PASSWORD = ""; //$NON-NLS-1$
-	private static final String HOST = "localhost"; //$NON-NLS-1$
-	private static int NUM_THREADS = 5;
-
-	private IRemoteServices fRemoteServices;
-	private IRemoteConnection fRemoteConnection;
-
-	public void testConcurrentProcess() {
-		Thread[] threads = new Thread[NUM_THREADS];
-		final Set<String> results = Collections.synchronizedSet(new HashSet<String>());
-
-		for (int t = 0; t < NUM_THREADS; t++) {
-			Thread thread = new Thread("test thread " + t) {
-				@Override
-				public void run() {
-					IRemoteProcessBuilder builder = fRemoteServices.getProcessBuilder(fRemoteConnection, "perl", "-V:version"); //$NON-NLS-1$
-					builder.redirectErrorStream(true);
-					for (int i = 0; i < 10; i++) {
-						try {
-							IRemoteProcess proc = builder.start();
-							BufferedReader stdout = new BufferedReader(new InputStreamReader(proc.getInputStream()));
-							String line;
-							while ((line = stdout.readLine()) != null) {
-								results.add(line);
-							}
-							try {
-								proc.waitFor();
-							} catch (InterruptedException e) {
-								e.printStackTrace();
-							}
-						} catch (IOException e) {
-							e.printStackTrace();
-							fail(e.getLocalizedMessage());
-						}
-					}
-				}
-
-			};
-			thread.start();
-			threads[t] = thread;
-		}
-		for (Thread t : threads) {
-			try {
-				t.join();
-			} catch (InterruptedException e) {
-			}
-		}
-		assertTrue(results.size() == 1);
-	}
-
-	public void testEnv() {
-		IRemoteProcessBuilder builder = fRemoteServices.getProcessBuilder(fRemoteConnection, "printenv"); //$NON-NLS-1$
-		builder.redirectErrorStream(true);
-		String path = builder.environment().get("PATH");
-		builder.environment().clear();
-		builder.environment().put("PATH", path);
-		try {
-			IRemoteProcess proc = builder.start();
-			BufferedReader stdout = new BufferedReader(new InputStreamReader(proc.getInputStream()));
-			String line;
-			String result = null;
-			while ((line = stdout.readLine()) != null) {
-				assertTrue(result == null);
-				result = line;
-			}
-			assertEquals(result, "PATH=" + path);
-		} catch (IOException e) {
-			e.printStackTrace();
-			fail(e.getLocalizedMessage());
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	@Override
-	protected void setUp() throws Exception {
-		fRemoteServices = RemoteServices.getRemoteServices("org.eclipse.ptp.remote.RemoteTools"); //$NON-NLS-1$
-		assertNotNull(fRemoteServices);
-
-		IRemoteConnectionManager connMgr = fRemoteServices.getConnectionManager();
-		assertNotNull(connMgr);
-
-		try {
-			fRemoteConnection = connMgr.newConnection("test_connection"); //$NON-NLS-1$
-		} catch (RemoteConnectionException e) {
-			fail(e.getLocalizedMessage());
-		}
-		assertNotNull(fRemoteConnection);
-		fRemoteConnection.setAddress(HOST);
-		fRemoteConnection.setUsername(USERNAME);
-		fRemoteConnection.setPassword(PASSWORD);
-
-		try {
-			fRemoteConnection.open(new NullProgressMonitor());
-		} catch (RemoteConnectionException e) {
-			fail(e.getLocalizedMessage());
-		}
-		assertTrue(fRemoteConnection.isOpen());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	@Override
-	protected void tearDown() throws Exception {
-		fRemoteConnection.close();
-		IRemoteConnectionManager connMgr = fRemoteServices.getConnectionManager();
-		assertNotNull(connMgr);
-		connMgr.removeConnection(fRemoteConnection);
-	}
-
-}
diff --git a/core/org.eclipse.ptp.remote.core.tests/src/org/eclipse/ptp/core/tests/RemoteToolsTests.java b/core/org.eclipse.ptp.remote.core.tests/src/org/eclipse/ptp/core/tests/RemoteToolsTests.java
deleted file mode 100644
index 7bce64b..0000000
--- a/core/org.eclipse.ptp.remote.core.tests/src/org/eclipse/ptp/core/tests/RemoteToolsTests.java
+++ /dev/null
@@ -1,251 +0,0 @@
-package org.eclipse.ptp.core.tests;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.ptp.internal.remote.remotetools.core.RemoteToolsServices;
-import org.eclipse.ptp.remotetools.core.IRemoteExecutionManager;
-import org.eclipse.ptp.remotetools.core.IRemoteExecutionTools;
-import org.eclipse.ptp.remotetools.core.IRemoteFileTools;
-import org.eclipse.ptp.remotetools.core.IRemoteItem;
-import org.eclipse.ptp.remotetools.core.IRemoteScript;
-import org.eclipse.ptp.remotetools.core.RemoteProcess;
-import org.eclipse.ptp.remotetools.environment.EnvironmentPlugin;
-import org.eclipse.ptp.remotetools.environment.control.ITargetConfig;
-import org.eclipse.ptp.remotetools.environment.control.ITargetControl;
-import org.eclipse.ptp.remotetools.environment.core.TargetElement;
-import org.eclipse.ptp.remotetools.environment.core.TargetTypeElement;
-import org.eclipse.ptp.remotetools.environment.generichost.core.ConfigFactory;
-import org.eclipse.ptp.remotetools.exception.CancelException;
-import org.eclipse.ptp.remotetools.exception.RemoteConnectionException;
-import org.eclipse.ptp.remotetools.exception.RemoteExecutionException;
-import org.eclipse.ptp.remotetools.exception.RemoteOperationException;
-
-public class RemoteToolsTests extends TestCase {
-	private static final String USERNAME = "greg"; //$NON-NLS-1$
-	private static final String HOST = "localhost"; //$NON-NLS-1$
-
-	private ITargetControl fTargetControl;
-	private IRemoteExecutionManager fExecutionManager;
-	private IRemoteExecutionTools fExecutionTools;
-	private TargetTypeElement fTarget;
-	private TargetElement fElement;
-
-	public void testScriptExecute() {
-		for (int i = 0; i < 10; i++) {
-			IRemoteScript script = fExecutionTools.createScript();
-			script.setScript("echo hi there");
-			RemoteProcess p = null;
-			try {
-				p = fExecutionTools.executeProcess(script);
-			} catch (RemoteExecutionException e) {
-				fail();
-			} catch (RemoteConnectionException e) {
-				fail();
-			} catch (CancelException e) {
-				fail();
-			}
-			assertNotNull(p);
-			BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
-			try {
-				String line;
-				while ((line = br.readLine()) != null) {
-					System.out.println("read \"" + line + "\"");
-					assertTrue(line.startsWith("hi there"));
-				}
-			} catch (IOException e) {
-				fail();
-			}
-			try {
-				p.waitFor();
-			} catch (InterruptedException e) {
-			}
-		}
-	}
-
-	public void testScriptIO() {
-
-		IRemoteScript script = fExecutionTools.createScript();
-		script.setScript("cat > /tmp/xxx.script");
-		RemoteProcess p = null;
-		try {
-			p = fExecutionTools.executeProcess(script);
-		} catch (RemoteExecutionException e) {
-			fail();
-		} catch (RemoteConnectionException e) {
-			fail();
-		} catch (CancelException e) {
-			fail();
-		}
-		assertNotNull(p);
-		BufferedWriter b = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
-		try {
-			b.write("this is a test\n");
-			b.write("this is a test2\n");
-			b.close();
-		} catch (IOException e) {
-			fail();
-		}
-		try {
-			p.waitFor();
-		} catch (InterruptedException e) {
-		}
-
-		script = fExecutionTools.createScript();
-		script.setScript("cat >> /tmp/xxx.script");
-		p = null;
-		try {
-			p = fExecutionTools.executeProcess(script);
-		} catch (RemoteExecutionException e) {
-			fail();
-		} catch (RemoteConnectionException e) {
-			fail();
-		} catch (CancelException e) {
-			fail();
-		}
-		assertNotNull(p);
-		b = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
-		try {
-			b.write("this is a test4\n");
-			b.write("this is a test5\n");
-			b.close();
-		} catch (IOException e) {
-			fail();
-		}
-		try {
-			p.waitFor();
-		} catch (InterruptedException e) {
-		}
-
-		script = fExecutionTools.createScript();
-		script.setScript("cat < /tmp/xxx.script");
-		p = null;
-		try {
-			p = fExecutionTools.executeProcess(script);
-		} catch (RemoteExecutionException e) {
-			fail();
-		} catch (RemoteConnectionException e) {
-			fail();
-		} catch (CancelException e) {
-			fail();
-		}
-		assertNotNull(p);
-		BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
-		try {
-			String line;
-			int count = 0;
-			while ((line = br.readLine()) != null) {
-				System.out.println("read \"" + line + "\"");
-				count++;
-			}
-			assertTrue(count == 4);
-		} catch (IOException e) {
-			fail();
-		}
-		try {
-			p.waitFor();
-		} catch (InterruptedException e) {
-		}
-
-	}
-
-	public void testScriptCancel() {
-
-		IRemoteScript script = fExecutionTools.createScript();
-		script.setScript("while true; do sleep 1; done");
-		RemoteProcess p = null;
-		try {
-			p = fExecutionTools.executeProcess(script);
-		} catch (RemoteExecutionException e) {
-			fail(e.getLocalizedMessage());
-		} catch (RemoteConnectionException e) {
-			fail(e.getLocalizedMessage());
-		} catch (CancelException e) {
-			fail(e.getLocalizedMessage());
-		}
-		assertNotNull(p);
-		/*
-		 * Give script time to start
-		 */
-		try {
-			Thread.sleep(2000);
-		} catch (InterruptedException e1) {
-		}
-		p.destroy();
-		try {
-			p.waitFor();
-		} catch (InterruptedException e) {
-		}
-	}
-
-	public void testBug300435() {
-		IRemoteFileTools fileTools;
-		String DIR_NAME = "/tmp/my path";
-		try {
-			fileTools = fExecutionManager.getRemoteFileTools();
-			fileTools.createDirectory(DIR_NAME, new NullProgressMonitor());
-			IRemoteItem[] items = fileTools.listItems("/tmp", new NullProgressMonitor());
-			boolean found = false;
-			for (IRemoteItem item : items) {
-				if (item.getPath().equals(DIR_NAME)) {
-					found = true;
-					break;
-				}
-			}
-			assertTrue(found);
-			fileTools.removeDirectory(DIR_NAME, new NullProgressMonitor());
-			fileTools.createFile(DIR_NAME, new NullProgressMonitor());
-			fileTools.removeFile(DIR_NAME, new NullProgressMonitor());
-		} catch (RemoteOperationException e) {
-			fail(e.getLocalizedMessage());
-		} catch (RemoteConnectionException e) {
-			fail(e.getLocalizedMessage());
-		} catch (CancelException e) {
-			fail(e.getLocalizedMessage());
-			// } catch (IOException e) {
-			// fail(e.getLocalizedMessage());
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	@Override
-	protected void setUp() throws Exception {
-		ConfigFactory factory = new ConfigFactory();
-		ITargetConfig config = factory.createTargetConfig();
-		config.setConnectionAddress(HOST);
-		config.setLoginUsername(USERNAME);
-		config.setPasswordAuth(true);
-
-		fTarget = RemoteToolsServices.getTargetTypeElement();
-		String id = EnvironmentPlugin.getDefault().getEnvironmentUniqueID();
-		TargetElement element = new TargetElement(fTarget, HOST, factory.getAttributes(), id);
-		fTarget.addElement(element);
-		fTargetControl = element.getControl();
-		fTargetControl.create(new NullProgressMonitor());
-		fExecutionManager = fTargetControl.createExecutionManager();
-		fExecutionTools = fExecutionManager.getExecutionTools();
-		assertNotNull(fExecutionTools);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	@Override
-	protected void tearDown() throws Exception {
-		fExecutionManager.close();
-		fTarget.removeElement(fElement);
-	}
-
-}
diff --git a/core/org.eclipse.ptp.remote.core.tests/src/org/eclipse/ptp/core/tests/SFTPTests.java b/core/org.eclipse.ptp.remote.core.tests/src/org/eclipse/ptp/core/tests/SFTPTests.java
deleted file mode 100644
index 07e04f7..0000000
--- a/core/org.eclipse.ptp.remote.core.tests/src/org/eclipse/ptp/core/tests/SFTPTests.java
+++ /dev/null
@@ -1,191 +0,0 @@
-package org.eclipse.ptp.core.tests;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-
-import junit.framework.TestCase;
-
-import com.jcraft.jsch.ChannelSftp;
-import com.jcraft.jsch.JSch;
-import com.jcraft.jsch.Session;
-import com.jcraft.jsch.SftpATTRS;
-import com.jcraft.jsch.SftpException;
-import com.jcraft.jsch.UIKeyboardInteractive;
-import com.jcraft.jsch.UserInfo;
-
-public class SFTPTests extends TestCase {
-	private static final String USERNAME = "user"; //$NON-NLS-1$
-	private static final String PASSWORD = "password"; //$NON-NLS-1$
-	private static final String HOST = "localhost"; //$NON-NLS-1$
-	private static final String PATH1 = "/home/user/sftp_test"; //$NON-NLS-1$
-	private static final String PATH2 = PATH1 + "/.file1"; //$NON-NLS-1$
-	private static final String TEST_STRING = "a string containing fairly *()(*&^$%## random text"; //$NON-NLS-1$
-	
-	
-	private class SSHUserInfo implements UserInfo, UIKeyboardInteractive {
-		private SSHUserInfo() { }
-
-		public String getPassword() {
-			return PASSWORD;
-		}
-		
-		public void setPassword(String password) {
-		}
-
-		public boolean promptYesNo(String str) {
-			return true;
-		}
-
-		public String getPassphrase() {
-			return "";
-		}
-		
-		public void setPassphrase(String passphrase) {
-		}
-
-		public boolean promptPassphrase(String message) {
-			return false;
-		}
-
-		public boolean promptPassword(String message) {
-			return true;
-		}
-		
-		public void setUsePassword(boolean usePassword) {
-		}
-
-		public void showMessage(String message) {
-		}
-
-		public String[] promptKeyboardInteractive(final String destination,
-				final String name, final String instruction,
-				final String[] prompt, final boolean[] echo) {
-			if (prompt.length != 1
-					|| echo[0] != false) {
-				return null;
-			}
-			String[] response = new String[1];
-			response[0] = PASSWORD;
-			return response;
-		}
-	}
-	
-	private JSch jsch;
-	private Session session;
-	private ChannelSftp sftp;
-	
-	public void testSftp() {
-		for (int i = 0; i < 5; i++) {
-			System.out.print("starting test... ");
-			
-			// stat
-			SftpATTRS attrs = null;
-			try {
-				attrs = sftp.stat(PATH1);
-			} catch (SftpException e) {
-				assertTrue(e.id == ChannelSftp.SSH_FX_NO_SUCH_FILE);
-			} catch (Exception e) {
-				fail(e.getLocalizedMessage());
-			}
-			assertNull(attrs);
-			
-			// mkdir
-			
-			try {
-				sftp.mkdir(PATH1);
-			} catch (Exception e) {
-				fail(e.getLocalizedMessage());
-			}
-			attrs = null;
-			try {
-				attrs = sftp.stat(PATH1);
-			} catch (Exception e) {
-				fail(e.getLocalizedMessage());
-			}
-			assertNotNull(attrs);
-			assertTrue(attrs.isDir());
-			
-			// test write
-			attrs = null;
-			try {
-				attrs = sftp.stat(PATH2);
-			} catch (SftpException e) {
-				assertTrue(e.id == ChannelSftp.SSH_FX_NO_SUCH_FILE);
-			} catch (Exception e) {
-				fail(e.getLocalizedMessage());
-			}
-			assertNull(attrs);
-			
-			try {
-				OutputStream stream = sftp.put(PATH2);
-				assertNotNull(stream);
-				BufferedWriter buf = new BufferedWriter(new OutputStreamWriter(stream));
-				buf.write(TEST_STRING);
-				buf.close();
-			} catch (Exception e) {
-				fail(e.getLocalizedMessage());
-			}
-			
-			attrs = null;
-			try {
-				attrs = sftp.stat(PATH2);
-			} catch (Exception e) {
-				fail(e.getLocalizedMessage());
-			}
-			assertNotNull(attrs);
-	
-			// read
-			try {
-				InputStream stream = sftp.get(PATH2);
-				assertNotNull(stream);
-				BufferedReader buf = new BufferedReader(new InputStreamReader(stream));
-				String line = buf.readLine().trim();
-				assertTrue(line.equals(TEST_STRING));
-				buf.close();
-			} catch (Exception e) {
-				fail(e.getLocalizedMessage());
-			}
-			
-			try {
-				sftp.rm(PATH2);
-			} catch (SftpException e) {
-				fail(e.getLocalizedMessage());
-			}
-			
-			try {
-				sftp.rmdir(PATH1);
-			} catch (SftpException e) {
-				fail(e.getLocalizedMessage());
-			}
-			
-			System.out.println("completed");
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	@Override
-	protected void setUp() throws Exception {
-		jsch = new JSch();
-		session = jsch.getSession(USERNAME, HOST);
-		session.setUserInfo(new SSHUserInfo());
-		session.connect();
-		sftp = (ChannelSftp) session.openChannel("sftp");
-		sftp.connect();
-	}
-
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	@Override
-	protected void tearDown() throws Exception {
-		sftp.disconnect();
-		session.disconnect();
-	}
-	
-}
diff --git a/core/org.eclipse.ptp.remote.core.tests/src/org/eclipse/ptp/remote/core/tests/suite/RemoteCoreTestSuite.java b/core/org.eclipse.ptp.remote.core.tests/src/org/eclipse/ptp/remote/core/tests/suite/RemoteCoreTestSuite.java
deleted file mode 100644
index ba33661..0000000
--- a/core/org.eclipse.ptp.remote.core.tests/src/org/eclipse/ptp/remote/core/tests/suite/RemoteCoreTestSuite.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.eclipse.ptp.remote.core.tests.suite;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.ptp.core.tests.FileStoreTests;
-import org.eclipse.ptp.core.tests.RemoteConnectionTests;
-import org.eclipse.ptp.core.tests.SFTPTests;
-
-public class RemoteCoreTestSuite {
-	public static Test suite() {
-		TestSuite suite = new TestSuite(RemoteCoreTestSuite.class.getName());
-		
-		suite.addTestSuite(FileStoreTests.class);
-		suite.addTestSuite(RemoteConnectionTests.class);
-		suite.addTestSuite(SFTPTests.class);
-		return suite;
-	}
-
-}
diff --git a/core/org.eclipse.ptp.remote.core/.options b/core/org.eclipse.ptp.remote.core/.options
deleted file mode 100644
index 1498e66..0000000
--- a/core/org.eclipse.ptp.remote.core/.options
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.ptp.remote.core/debug=false
diff --git a/core/org.eclipse.ptp.remote.core/.project b/core/org.eclipse.ptp.remote.core/.project
deleted file mode 100644
index 99560f9..0000000
--- a/core/org.eclipse.ptp.remote.core/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ptp.remote.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/core/org.eclipse.ptp.remote.core/META-INF/MANIFEST.MF b/core/org.eclipse.ptp.remote.core/META-INF/MANIFEST.MF
deleted file mode 100644
index bb1cb68..0000000
--- a/core/org.eclipse.ptp.remote.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,21 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.ptp.remote.core;singleton:=true
-Bundle-Version: 7.0.0.qualifier
-Bundle-Activator: org.eclipse.ptp.internal.remote.core.PTPRemoteCorePlugin
-Bundle-Vendor: %pluginProvider
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.core.filesystem,
- org.eclipse.core.resources,
- org.eclipse.core.variables,
- org.eclipse.cdt.core
-Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.ptp.internal.remote.core;x-friends:="org.eclipse.ptp.remote.ui",
- org.eclipse.ptp.internal.remote.core.messages;x-internal:=true,
- org.eclipse.ptp.internal.remote.core.preferences;x-friends:="org.eclipse.ptp.remote.ui",
- org.eclipse.ptp.internal.remote.core.services.local;x-internal:=true,
- org.eclipse.ptp.remote.core,
- org.eclipse.ptp.remote.core.exception
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/core/org.eclipse.ptp.remote.core/build.properties b/core/org.eclipse.ptp.remote.core/build.properties
deleted file mode 100644
index 81804ea..0000000
--- a/core/org.eclipse.ptp.remote.core/build.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               about.html,\
-               plugin.properties
-
diff --git a/core/org.eclipse.ptp.remote.core/plugin.properties b/core/org.eclipse.ptp.remote.core/plugin.properties
deleted file mode 100644
index 25b45e2..0000000
--- a/core/org.eclipse.ptp.remote.core/plugin.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 IBM Corporation.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-###############################################################################
-
-pluginName=PTP Remote Core
-pluginProvider=Eclipse PTP
diff --git a/core/org.eclipse.ptp.remote.core/plugin.xml b/core/org.eclipse.ptp.remote.core/plugin.xml
deleted file mode 100644
index ab358f8..0000000
--- a/core/org.eclipse.ptp.remote.core/plugin.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-   <extension-point id="remoteServices" name="Remote Services" schema="schema/remoteServices.exsd"/>
-   <extension-point id="remoteResources" name="Remote Resources" schema="schema/remoteResources.exsd"/>
-   <extension
-         point="org.eclipse.ptp.remote.core.remoteServices">
-      <remoteServices
-            class="org.eclipse.ptp.internal.remote.core.services.local.LocalServicesFactory"
-            id="org.eclipse.ptp.remote.LocalServices"
-            name="Local"
-            newConnections="false"
-            scheme="file">
-      </remoteServices>
-   </extension>
-   <extension
-         point="org.eclipse.core.variables.valueVariables">
-      <variable
-            description="payload"
-            initialValue="&quot;&quot;"
-            name="payload"
-            readOnly="false">
-      </variable>
-      <variable
-            description="payload_args"
-            initialValue="&quot;&quot;"
-            name="payload_args"
-            readOnly="false">
-      </variable>
-   </extension>
-   <extension
-         point="org.eclipse.core.runtime.adapters">
-      <factory
-            adaptableType="org.eclipse.core.resources.IResource"
-            class="org.eclipse.ptp.internal.remote.core.RemoteResourceAdapterFactory">
-         <adapter
-               type="org.eclipse.ptp.remote.core.IRemoteResource">
-         </adapter>
-      </factory>
-   </extension>
-   <extension
-         point="org.eclipse.core.runtime.preferences">
-      <initializer
-            class="org.eclipse.ptp.internal.remote.core.preferences.PreferenceInitializer">
-      </initializer>
-   </extension>
-
-</plugin>
diff --git a/core/org.eclipse.ptp.remote.core/schema/remoteResources.exsd b/core/org.eclipse.ptp.remote.core/schema/remoteResources.exsd
deleted file mode 100644
index c264fce..0000000
--- a/core/org.eclipse.ptp.remote.core/schema/remoteResources.exsd
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ptp.remote.core" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.ptp.remote.core" id="remoteResources" name="Remote Resources"/>
-      </appInfo>
-      <documentation>
-         This extension point allows remote implementations to provide additional operations on a resource. The extension associates a project nature with the resource extension. Resources contained within a particular project can be adapted to obtain the additional operations.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <appInfo>
-            <meta.element />
-         </appInfo>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="remoteResource"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="remoteResource">
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the fully qualified name of a class that implements &lt;code&gt;org.eclipse.ptp.remote.core.IRemoteResource&lt;/code&gt;
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn=":org.eclipse.ptp.remote.core.IRemoteResource"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="nature" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a project nature. Resources contained within a project with this nature can be adapted to obtain the &lt;code&gt;org.eclipse.ptp.remote.core.IRemoteResource&lt;/code&gt; interface.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         &lt;pre&gt;
-   &lt;extension point=&quot;org.eclipse.ptp.remote.core.remoteResource&quot;&gt; 
-      &lt;remoteResource class=&quot;MyRemoteResourceClass&quot; nature=&quot;MyProjectNature&quot;/&gt; 
-   &lt;/extension&gt; 
-&lt;/pre&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiinfo"/>
-      </appInfo>
-      <documentation>
-         The value of the class attribute must implement the interface &lt;code&gt;org.eclipse.ptp.remote.core.IRemoteResource&lt;/code&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         The remote package itself does not have any predefined remote resources.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2013 IBM Corporation and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/core/org.eclipse.ptp.remote.core/schema/remoteServices.exsd b/core/org.eclipse.ptp.remote.core/schema/remoteServices.exsd
deleted file mode 100644
index 76aa2ef..0000000
--- a/core/org.eclipse.ptp.remote.core/schema/remoteServices.exsd
+++ /dev/null
@@ -1,149 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ptp.remote.core" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.ptp.remote.core" id="remoteServices" name="Remote Services"/>
-      </appInfo>
-      <documentation>
-         This extension point is used to add a remote services provider.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <appInfo>
-            <meta.element />
-         </appInfo>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="remoteServices"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="remoteServices">
-      <annotation>
-         <appInfo>
-            <meta.element labelAttribute="name"/>
-         </appInfo>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A unique identifier for this remote service
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A human readable name for the remote service
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="scheme" type="string" use="required">
-            <annotation>
-               <documentation>
-                  An EFS scheme name for this service
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The fully qualified name of the Java class implementing &lt;samp&gt;org.eclipse.ptp.remote.core.IRemoteServicesFactory&lt;/samp&gt;.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn=":org.eclipse.ptp.remote.core.IRemoteServicesFactory"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="newConnections" type="boolean" use="required">
-            <annotation>
-               <documentation>
-                  Indicates if this service supports the creation of new connections.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         The value of the class attribute must implement &lt;samp&gt;org.eclipse.ptp.remote.core.IRemoteServicesFactory&lt;/samp&gt;.
-      </documentation>
-   </annotation>
-
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         &lt;pre&gt;
-   &lt;extension
-         point=&quot;org.eclipse.ptp.remote.core.remoteServices&quot;&gt;
-      &lt;remoteServices
-            class=&quot;org.eclipse.ptp.internal.remote.core.services.local.LocalServicesFactory&quot;
-            id=&quot;org.eclipse.ptp.remote.LocalServices&quot;
-            name=&quot;Local&quot;
-            newConnections=&quot;false&quot;
-            scheme=&quot;file&quot;&gt;
-      &lt;/remoteServices&gt;
-   &lt;/extension&gt;
-&lt;/pre&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         The remote package provides a remote services implementation for local services.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2013 IBM Corporation and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/PTPRemoteCorePlugin.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/PTPRemoteCorePlugin.java
deleted file mode 100644
index 24d6f47..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/PTPRemoteCorePlugin.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.remote.core;
-
-import org.eclipse.core.resources.ISaveContext;
-import org.eclipse.core.resources.ISaveParticipant;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ptp.internal.remote.core.preferences.Preferences;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class PTPRemoteCorePlugin extends Plugin {
-	private static final String PLUGIN_ID = "org.eclipse.ptp.remote.core"; //$NON-NLS-1$
-
-	// The shared instance
-	private static PTPRemoteCorePlugin plugin;
-
-	/**
-	 * Returns the shared instance
-	 * 
-	 * @return the shared instance
-	 */
-	public static PTPRemoteCorePlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Get unique identifier for this plugin
-	 */
-	public static String getUniqueIdentifier() {
-		if (getDefault() == null) {
-			return PLUGIN_ID;
-		}
-		return getDefault().getBundle().getSymbolicName();
-	}
-
-	/**
-	 * Logs the specified status with this plug-in's log.
-	 * 
-	 * @param status
-	 *            status to log
-	 */
-	public static void log(IStatus status) {
-		getDefault().getLog().log(status);
-	}
-
-	/**
-	 * Logs an internal error with the specified message.
-	 * 
-	 * @param message
-	 *            the error message to log
-	 */
-	public static void log(String message) {
-		log(new Status(IStatus.ERROR, getUniqueIdentifier(), IStatus.ERROR, message, null));
-	}
-
-	/**
-	 * Logs an internal error with the specified throwable
-	 * 
-	 * @param e
-	 *            the exception to be logged
-	 */
-	public static void log(Throwable e) {
-		log(new Status(IStatus.ERROR, getUniqueIdentifier(), IStatus.ERROR, e.getMessage(), e));
-	}
-
-	/**
-	 * The constructor
-	 */
-	public PTPRemoteCorePlugin() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext )
-	 */
-	@Override
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-		ResourcesPlugin.getWorkspace().addSaveParticipant(getUniqueIdentifier(), new ISaveParticipant() {
-			@Override
-			public void saving(ISaveContext saveContext) throws CoreException {
-				Preferences.savePreferences(getUniqueIdentifier());
-			}
-
-			@Override
-			public void rollback(ISaveContext saveContext) {
-				// Do nothing
-			}
-
-			@Override
-			public void prepareToSave(ISaveContext saveContext) throws CoreException {
-				// Do nothing
-			}
-
-			@Override
-			public void doneSaving(ISaveContext saveContext) {
-				// Do nothing
-			}
-		});
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext )
-	 */
-	@Override
-	public void stop(BundleContext context) throws Exception {
-		Preferences.savePreferences(getUniqueIdentifier());
-		plugin = null;
-		super.stop(context);
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/RemoteResourceAdapterFactory.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/RemoteResourceAdapterFactory.java
deleted file mode 100644
index 6035704..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/RemoteResourceAdapterFactory.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 IBM Corporation.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.remote.core;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ptp.internal.remote.core.services.local.LocalResource;
-import org.eclipse.ptp.remote.core.IRemoteResource;
-
-public class RemoteResourceAdapterFactory implements IAdapterFactory {
-	public static final String EXTENSION_POINT_ID = "remoteResources"; //$NON-NLS-1$
-
-	public static final String ATTR_NATURE = "nature"; //$NON-NLS-1$
-	public static final String ATTR_CLASS = "class"; //$NON-NLS-1$
-
-	private Map<String, RemoteResourceFactory> fResourceFactory;
-
-	@SuppressWarnings("rawtypes")
-	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		if (adapterType == IRemoteResource.class) {
-			if (adaptableObject instanceof IResource) {
-				loadExtensions();
-				IResource resource = (IResource) adaptableObject;
-				for (String nature : fResourceFactory.keySet()) {
-					try {
-						if (resource.getProject().hasNature(nature)) {
-							RemoteResourceFactory factory = fResourceFactory.get(nature);
-							if (factory != null) {
-								return factory.getRemoteResource(resource);
-							}
-						}
-					} catch (CoreException e) {
-						// Treat as failure
-					}
-				}
-				return new LocalResource(resource);
-			}
-		}
-		return null;
-	}
-
-	@SuppressWarnings("rawtypes")
-	public Class[] getAdapterList() {
-		return new Class[] { IRemoteResource.class };
-	}
-
-	private synchronized void loadExtensions() {
-		if (fResourceFactory == null) {
-			fResourceFactory = new HashMap<String, RemoteResourceFactory>();
-
-			IExtensionRegistry registry = Platform.getExtensionRegistry();
-			IExtensionPoint extensionPoint = registry.getExtensionPoint(PTPRemoteCorePlugin.getUniqueIdentifier(),
-					EXTENSION_POINT_ID);
-
-			for (IExtension ext : extensionPoint.getExtensions()) {
-				final IConfigurationElement[] elements = ext.getConfigurationElements();
-
-				for (IConfigurationElement ce : elements) {
-					String nature = ce.getAttribute(ATTR_NATURE);
-					RemoteResourceFactory factory = new RemoteResourceFactory(ce);
-					fResourceFactory.put(nature, factory);
-				}
-			}
-		}
-	}
-
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/RemoteResourceFactory.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/RemoteResourceFactory.java
deleted file mode 100644
index 059ec0f..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/RemoteResourceFactory.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 IBM Corporation.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.remote.core;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.ptp.remote.core.IRemoteResource;
-
-/**
- * Factory to create an IRemoteResource
- * 
- * @author greg
- * 
- */
-public class RemoteResourceFactory {
-	private final IConfigurationElement fConfigElement;
-
-	public RemoteResourceFactory(IConfigurationElement ce) {
-		fConfigElement = ce;
-	}
-
-	/**
-	 * Get the remote resource associated with the platform resource.
-	 * 
-	 * @return IRemoteResource
-	 */
-	public IRemoteResource getRemoteResource(IResource resource) {
-		try {
-			IRemoteResource remoteRes = (IRemoteResource) fConfigElement
-					.createExecutableExtension(RemoteResourceAdapterFactory.ATTR_CLASS);
-			remoteRes.setResource(resource);
-			return remoteRes;
-		} catch (CoreException e) {
-			PTPRemoteCorePlugin.log(e);
-			return null;
-		}
-	}
-}
\ No newline at end of file
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/RemoteServicesImpl.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/RemoteServicesImpl.java
deleted file mode 100644
index 43e3268..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/RemoteServicesImpl.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.remote.core;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-
-/**
- * Main entry point for remote services
- * 
- * @since 7.0
- */
-public class RemoteServicesImpl {
-	public static final String REMOTE_SERVICES_EXTENSION_POINT_ID = "remoteServices"; //$NON-NLS-1$
-
-	// Active remote services plugins (not necessarily loaded)
-	private static final Map<String, RemoteServicesProxy> fRemoteServicesById = Collections
-			.synchronizedMap(new HashMap<String, RemoteServicesProxy>());
-	private static final Map<String, RemoteServicesProxy> fRemoteServicesByScheme = Collections
-			.synchronizedMap(new HashMap<String, RemoteServicesProxy>());
-
-	private RemoteServicesImpl() {
-		// Hide constructor
-	}
-
-	private static class RemoteServicesSorter implements Comparator<RemoteServicesProxy> {
-		@Override
-		public int compare(RemoteServicesProxy o1, RemoteServicesProxy o2) {
-			return o1.getName().compareToIgnoreCase(o2.getName());
-		}
-	}
-
-	public static RemoteServicesProxy getRemoteServiceProxyById(String id) {
-		retrieveRemoteServices();
-		return fRemoteServicesById.get(id);
-	}
-
-	public static RemoteServicesProxy getRemoteServiceProxyByURI(URI uri) {
-		String scheme = uri.getScheme();
-		if (scheme != null) {
-			retrieveRemoteServices();
-			return fRemoteServicesByScheme.get(scheme);
-		}
-		return null;
-	}
-
-	/**
-	 * Retrieve a sorted list of remote service proxies.
-	 * 
-	 * @return remote service proxies
-	 */
-	public static RemoteServicesProxy[] getRemoteServiceProxies() {
-		retrieveRemoteServices();
-		List<RemoteServicesProxy> services = new ArrayList<RemoteServicesProxy>();
-		for (RemoteServicesProxy proxy : fRemoteServicesById.values()) {
-			services.add(proxy);
-		}
-		Collections.sort(services, new RemoteServicesSorter());
-		return services.toArray(new RemoteServicesProxy[0]);
-	}
-
-	/**
-	 * Find and load all remoteServices plugins.
-	 */
-	private static void retrieveRemoteServices() {
-		if (fRemoteServicesById.isEmpty()) {
-			IExtensionRegistry registry = Platform.getExtensionRegistry();
-			IExtensionPoint extensionPoint = registry.getExtensionPoint(PTPRemoteCorePlugin.getUniqueIdentifier(),
-					REMOTE_SERVICES_EXTENSION_POINT_ID);
-			final IExtension[] extensions = extensionPoint.getExtensions();
-
-			for (IExtension ext : extensions) {
-				final IConfigurationElement[] elements = ext.getConfigurationElements();
-
-				for (IConfigurationElement ce : elements) {
-					RemoteServicesProxy proxy = new RemoteServicesProxy(ce);
-					fRemoteServicesById.put(proxy.getId(), proxy);
-					fRemoteServicesByScheme.put(proxy.getScheme(), proxy);
-				}
-			}
-		}
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/RemoteServicesProxy.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/RemoteServicesProxy.java
deleted file mode 100644
index 059e96c..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/RemoteServicesProxy.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.remote.core;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ptp.internal.remote.core.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.IRemoteServicesDescriptor;
-import org.eclipse.ptp.remote.core.IRemoteServicesFactory;
-
-public class RemoteServicesProxy implements IRemoteServicesDescriptor {
-	private static final String ATTR_ID = "id"; //$NON-NLS-1$
-	private static final String ATTR_NAME = "name"; //$NON-NLS-1$
-	private static final String ATTR_SCHEME = "scheme"; //$NON-NLS-1$
-	private static final String ATTR_CLASS = "class"; //$NON-NLS-1$
-	private static final String ATTR_NEWCONNECTIONS = "newConnections"; //$NON-NLS-1$
-
-	private static boolean getAttribute(IConfigurationElement configElement, String name, boolean defaultValue) {
-		String attr = configElement.getAttribute(name);
-		if (attr != null) {
-			return Boolean.parseBoolean(attr);
-		}
-		return defaultValue;
-	}
-
-	private static String getAttribute(IConfigurationElement configElement, String name, String defaultValue) {
-		String value = configElement.getAttribute(name);
-		if (value != null) {
-			return value;
-		}
-		if (defaultValue != null) {
-			return defaultValue;
-		}
-		throw new IllegalArgumentException(NLS.bind(Messages.RemoteServicesProxy_0, name));
-	}
-
-	private final IConfigurationElement fConfigElement;
-
-	private final String fId;
-	private final String fName;
-	private final String fScheme;
-	private final boolean fNewConnections;
-	private IRemoteServicesFactory fFactory;
-	private IRemoteServices fDelegate = null;
-
-	public RemoteServicesProxy(IConfigurationElement configElement) {
-		fConfigElement = configElement;
-		fId = getAttribute(configElement, ATTR_ID, null);
-		fName = getAttribute(configElement, ATTR_NAME, fId);
-		fScheme = getAttribute(configElement, ATTR_SCHEME, null);
-		fNewConnections = getAttribute(configElement, ATTR_NEWCONNECTIONS, false);
-		getAttribute(configElement, ATTR_CLASS, null);
-		fFactory = null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteServicesDescriptor#canCreateConnections
-	 * ()
-	 */
-	@Override
-	public boolean canCreateConnections() {
-		return fNewConnections;
-	}
-
-	/**
-	 * Get the factory from the plugin
-	 * 
-	 * @return instance of the factory
-	 */
-	public IRemoteServicesFactory getFactory() {
-		if (fFactory != null) {
-			return fFactory;
-		}
-		try {
-			fFactory = (IRemoteServicesFactory) fConfigElement.createExecutableExtension(ATTR_CLASS);
-		} catch (Exception e) {
-			PTPRemoteCorePlugin
-					.log(NLS.bind(Messages.RemoteServicesProxy_1, new Object[] { fConfigElement.getAttribute(ATTR_CLASS), fId,
-							fConfigElement.getDeclaringExtension().getNamespaceIdentifier() }));
-		}
-		return fFactory;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteServices#getId()
-	 */
-	@Override
-	public String getId() {
-		return fId;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteServices#getName()
-	 */
-	@Override
-	public String getName() {
-		return fName;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteServices#getScheme()
-	 */
-	@Override
-	public String getScheme() {
-		return fScheme;
-	}
-
-	/**
-	 * Get the remote services implementation for this descriptor. The service has not been initialized.
-	 * 
-	 * @return the remote services implementation
-	 */
-	public IRemoteServices getServices() {
-		loadServices();
-		return fDelegate;
-	}
-
-	/**
-	 * Create the remote services factory. Note that the services will not be
-	 * initialized.
-	 */
-	private void loadServices() {
-		if (fDelegate == null) {
-			IRemoteServicesFactory factory = getFactory();
-			if (factory != null) {
-				fDelegate = factory.getServices(this);
-			}
-		}
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/messages/Messages.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/messages/Messages.java
deleted file mode 100644
index d170bed..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/messages/Messages.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package org.eclipse.ptp.internal.remote.core.messages;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ptp.internal.remote.core.messages.messages"; //$NON-NLS-1$
-	public static String LocalConnection_1;
-	public static String LocalConnection_2;
-	public static String RemoteServicesProxy_0;
-	public static String RemoteServicesProxy_1;
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/messages/messages.properties b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/messages/messages.properties
deleted file mode 100644
index 0f135cf..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/messages/messages.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-LocalConnection_1=localhost
-LocalConnection_2=Port forwarding not supported
-RemoteServicesProxy_0=Missing {0} attribute
-RemoteServicesProxy_1=Failed to instantiate factory: {0} in type: {1} in plugin: {2}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/preferences/PreferenceInitializer.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/preferences/PreferenceInitializer.java
deleted file mode 100644
index f77a50e..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/preferences/PreferenceInitializer.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2012 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- * IBM - Initial API and implementation

- *******************************************************************************/

-

-package org.eclipse.ptp.internal.remote.core.preferences;

-

-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;

-import org.eclipse.ptp.internal.remote.core.PTPRemoteCorePlugin;

-import org.eclipse.ptp.remote.core.IRemotePreferenceConstants;

-

-/**

- * Class used to initialize default preference values.

- * 

- * @since 6.0

- */

-public class PreferenceInitializer extends AbstractPreferenceInitializer {

-

-	@Override

-	public void initializeDefaultPreferences() {

-		Preferences.setDefaultString(PTPRemoteCorePlugin.getUniqueIdentifier(), IRemotePreferenceConstants.PREF_REMOTE_SERVICES_ID,

-				IRemotePreferenceConstants.REMOTE_TOOLS_REMOTE_SERVICES_ID);

-	}

-}

diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/preferences/Preferences.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/preferences/Preferences.java
deleted file mode 100644
index 2d0d1fc..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/preferences/Preferences.java
+++ /dev/null
@@ -1,523 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2011 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.ptp.internal.remote.core.preferences;

-

-import org.eclipse.core.runtime.Platform;

-import org.eclipse.core.runtime.preferences.DefaultScope;

-import org.eclipse.core.runtime.preferences.IEclipsePreferences;

-import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener;

-import org.eclipse.core.runtime.preferences.IScopeContext;

-import org.eclipse.core.runtime.preferences.InstanceScope;

-import org.eclipse.ptp.internal.remote.core.PTPRemoteCorePlugin;

-import org.osgi.service.prefs.BackingStoreException;

-

-/**

- * Convenience class to facilitate using the new {@link IEclipsePreferences}

- * story. Adapted from org.eclipse.debug.internal.core.Preferences.

- * 

- * @since 5.0

- * @noinstantiate This class is not intended to be instantiated by clients.

- */

-public final class Preferences {

-

-	private static final IScopeContext[] contexts = new IScopeContext[] { DefaultScope.INSTANCE, InstanceScope.INSTANCE };

-

-	private static final int DEFAULT_CONTEXT = 0;

-	private static final int INSTANCE_CONTEXT = 1;

-

-	/**

-	 * Adds the given preference listener to the {@link DefaultScope} and the

-	 * {@link InstanceScope}

-	 * 

-	 * @param qualifier

-	 * @param listener

-	 */

-	public static void addPreferenceChangeListener(String qualifier, IPreferenceChangeListener listener) {

-		contexts[DEFAULT_CONTEXT].getNode(qualifier).addPreferenceChangeListener(listener);

-		contexts[INSTANCE_CONTEXT].getNode(qualifier).addPreferenceChangeListener(listener);

-	}

-

-	/**

-	 * Returns whether the named preference is know in the preference store.

-	 * 

-	 * @param qualifier

-	 * @param name

-	 * @return

-	 */

-	public static boolean contains(String qualifier, String name) {

-		return (contexts[INSTANCE_CONTEXT].getNode(qualifier).get(name, null) != null || contexts[DEFAULT_CONTEXT].getNode(

-				qualifier).get(name, null) != null);

-	}

-

-	/**

-	 * Returns the value in the preference store for the given key. If the key

-	 * is not defined then return the default value. Use the canonical scope

-	 * lookup order for finding the preference value.

-	 * 

-	 * @param qualifier

-	 * @param key

-	 * @param defaultvalue

-	 * 

-	 * @return the value of the preference or the given default value

-	 */

-	public static boolean getBoolean(String qualifier, String key) {

-		return Platform.getPreferencesService().getBoolean(qualifier, key, false, null);

-	}

-

-	/**

-	 * Returns the value in the preference store for the given key. If the key

-	 * is not defined then return the default value. Use the canonical scope

-	 * lookup order for finding the preference value.

-	 * 

-	 * @param qualifier

-	 * @param key

-	 * @param defaultvalue

-	 * 

-	 * @return the value of the preference or the given default value

-	 */

-	public static byte[] getByteArray(String qualifier, String key) {

-		return Platform.getPreferencesService().getByteArray(qualifier, key, null, null);

-	}

-

-	/**

-	 * Returns the default boolean value stored in the {@link DefaultScope} for

-	 * the given key or the specified default value if the key does not appear

-	 * in the {@link DefaultScope}

-	 * 

-	 * @param qualifier

-	 * @param key

-	 * @param defaultvalue

-	 * 

-	 * @return the boolean value set in the {@link DefaultScope} for the given

-	 *         key, or the specified default value.

-	 */

-	public static synchronized boolean getDefaultBoolean(String qualifier, String key, boolean defaultvalue) {

-		return contexts[DEFAULT_CONTEXT].getNode(qualifier).getBoolean(key, defaultvalue);

-	}

-

-	/**

-	 * Returns the default byte array value stored in the {@link DefaultScope}

-	 * for the given key or the specified default value if the key does not

-	 * appear in the {@link DefaultScope}

-	 * 

-	 * @param qualifier

-	 * @param key

-	 * @param defaultvalue

-	 * 

-	 * @return the byte array value set in the {@link DefaultScope} for the

-	 *         given key, or the specified default value.

-	 */

-	public static synchronized byte[] getDefaultByteArray(String qualifier, String key, byte[] defaultvalue) {

-		return contexts[DEFAULT_CONTEXT].getNode(qualifier).getByteArray(key, defaultvalue);

-	}

-

-	/**

-	 * Returns the default double value stored in the {@link DefaultScope} for

-	 * the given key or the specified default value if the key does not appear

-	 * in the {@link DefaultScope}

-	 * 

-	 * @param qualifier

-	 * @param key

-	 * @param defaultvalue

-	 * 

-	 * @return the double value set in the {@link DefaultScope} for the given

-	 *         key, or the specified default value.

-	 */

-	public static synchronized double getDefaultDouble(String qualifier, String key, double defaultvalue) {

-		return contexts[DEFAULT_CONTEXT].getNode(qualifier).getDouble(key, defaultvalue);

-	}

-

-	/**

-	 * Returns the default float value stored in the {@link DefaultScope} for

-	 * the given key or the specified default value if the key does not appear

-	 * in the {@link DefaultScope}

-	 * 

-	 * @param qualifier

-	 * @param key

-	 * @param defaultvalue

-	 * 

-	 * @return the float value set in the {@link DefaultScope} for the given

-	 *         key, or the specified default value.

-	 */

-	public static synchronized float getDefaultFloat(String qualifier, String key, float defaultvalue) {

-		return contexts[DEFAULT_CONTEXT].getNode(qualifier).getFloat(key, defaultvalue);

-	}

-

-	/**

-	 * Returns the default integer value stored in the {@link DefaultScope} for

-	 * the given key or the specified default value if the key does not appear

-	 * in the {@link DefaultScope}

-	 * 

-	 * @param qualifier

-	 * @param key

-	 * @param defaultvalue

-	 * 

-	 * @return the integer value set in the {@link DefaultScope} for the given

-	 *         key, or the specified default value.

-	 */

-	public static synchronized int getDefaultInt(String qualifier, String key, int defaultvalue) {

-		return contexts[DEFAULT_CONTEXT].getNode(qualifier).getInt(key, defaultvalue);

-	}

-

-	/**

-	 * Returns the default long value stored in the {@link DefaultScope} for the

-	 * given key or the specified default value if the key does not appear in

-	 * the {@link DefaultScope}

-	 * 

-	 * @param qualifier

-	 * @param key

-	 * @param defaultvalue

-	 * 

-	 * @return the long value set in the {@link DefaultScope} for the given key,

-	 *         or the specified default value.

-	 */

-	public static synchronized long getDefaultLong(String qualifier, String key, long defaultvalue) {

-		return contexts[DEFAULT_CONTEXT].getNode(qualifier).getLong(key, defaultvalue);

-	}

-

-	/**

-	 * Returns the default string value stored in the {@link DefaultScope} for

-	 * the given key or the specified default value if the key does not appear

-	 * in the {@link DefaultScope}

-	 * 

-	 * @param qualifier

-	 * @param key

-	 * @param defaultvalue

-	 * 

-	 * @return the string value set in the {@link DefaultScope} for the given

-	 *         key, or the specified default value.

-	 */

-	public static synchronized String getDefaultString(String qualifier, String key, String defaultvalue) {

-		return contexts[DEFAULT_CONTEXT].getNode(qualifier).get(key, defaultvalue);

-	}

-

-	/**

-	 * Returns the value in the preference store for the given key. If the key

-	 * is not defined then return the default value. Use the canonical scope

-	 * lookup order for finding the preference value.

-	 * 

-	 * @param qualifier

-	 * @param key

-	 * @param defaultvalue

-	 * 

-	 * @return the value of the preference or the given default value

-	 */

-	public static double getDouble(String qualifier, String key) {

-		return Platform.getPreferencesService().getDouble(qualifier, key, 0.0, null);

-	}

-

-	/**

-	 * Returns the value in the preference store for the given key. If the key

-	 * is not defined then return the default value. Use the canonical scope

-	 * lookup order for finding the preference value.

-	 * 

-	 * @param qualifier

-	 * @param key

-	 * @param defaultvalue

-	 * 

-	 * @return the value of the preference or the given default value

-	 */

-	public static float getFloat(String qualifier, String key) {

-		return Platform.getPreferencesService().getFloat(qualifier, key, 0.0f, null);

-	}

-

-	/**

-	 * Returns the value in the preference store for the given key. If the key

-	 * is not defined then return the default value. Use the canonical scope

-	 * lookup order for finding the preference value.

-	 * 

-	 * @param qualifier

-	 * @param key

-	 * @param defaultvalue

-	 * 

-	 * @return the value of the preference or the given default value

-	 */

-	public static int getInt(String qualifier, String key) {

-		return Platform.getPreferencesService().getInt(qualifier, key, 0, null);

-	}

-

-	/**

-	 * Returns the value in the preference store for the given key. If the key

-	 * is not defined then return the default value. Use the canonical scope

-	 * lookup order for finding the preference value.

-	 * 

-	 * @param qualifier

-	 * @param key

-	 * @param defaultvalue

-	 * 

-	 * @return the value of the preference or the given default value

-	 */

-	public static long getLong(String qualifier, String key) {

-		return Platform.getPreferencesService().getLong(qualifier, key, 0L, null);

-	}

-

-	/**

-	 * Returns the value in the preference store for the given key. If the key

-	 * is not defined then return the default value. Use the canonical scope

-	 * lookup order for finding the preference value.

-	 * 

-	 * @param qualifier

-	 * @param key

-	 * @param defaultvalue

-	 * 

-	 * @return the value of the preference or the given default value

-	 */

-	public static String getString(String qualifier, String key) {

-		return Platform.getPreferencesService().getString(qualifier, key, null, null);

-	}

-

-	/**

-	 * Returns true if the named preference has the default value.

-	 * 

-	 * @param qualifier

-	 * @param name

-	 * @return

-	 */

-	public static boolean isDefault(String qualifier, String name) {

-		String defVal = contexts[DEFAULT_CONTEXT].getNode(qualifier).get(name, null);

-		if (defVal != null) {

-			String val = contexts[INSTANCE_CONTEXT].getNode(qualifier).get(name, null);

-			return (val != null && val.equals(defVal));

-		}

-		return false;

-	}

-

-	/**

-	 * Removes the given preference listener from the {@link DefaultScope} and

-	 * the {@link InstanceScope}

-	 * 

-	 * @param qualifier

-	 * @param listener

-	 */

-	public static void removePreferenceChangeListener(String qualifier, IPreferenceChangeListener listener) {

-		contexts[DEFAULT_CONTEXT].getNode(qualifier).removePreferenceChangeListener(listener);

-		contexts[INSTANCE_CONTEXT].getNode(qualifier).removePreferenceChangeListener(listener);

-	}

-

-	/**

-	 * Save the preferences for the given plugin identifier. It should be noted

-	 * that all pending preference changes will be flushed with this method.

-	 * 

-	 * @param qualifier

-	 */

-	public static synchronized void savePreferences(String qualifier) {

-		try {

-			contexts[DEFAULT_CONTEXT].getNode(qualifier).flush();

-			contexts[INSTANCE_CONTEXT].getNode(qualifier).flush();

-		} catch (BackingStoreException bse) {

-			PTPRemoteCorePlugin.log(bse);

-		}

-	}

-

-	/**

-	 * Sets a boolean preference in the {@link InstanceScope}.

-	 * 

-	 * @param qualifier

-	 * @param key

-	 *            the key

-	 * @param value

-	 *            the value

-	 */

-	public static synchronized void setBoolean(String qualifier, String key, boolean value) {

-		contexts[INSTANCE_CONTEXT].getNode(qualifier).putBoolean(key, value);

-	}

-

-	/**

-	 * Sets a byte array preference in the {@link InstanceScope}.

-	 * 

-	 * @param qualifier

-	 * @param key

-	 *            the key

-	 * @param value

-	 *            the value

-	 */

-	public static synchronized void setByteArray(String qualifier, String key, byte[] value) {

-		contexts[INSTANCE_CONTEXT].getNode(qualifier).putByteArray(key, value);

-	}

-

-	/**

-	 * Sets a boolean in the {@link DefaultScope}

-	 * 

-	 * @param qualifier

-	 * @param key

-	 *            the key

-	 * @param value

-	 *            the new value

-	 */

-	public static synchronized void setDefaultBoolean(String qualifier, String key, boolean value) {

-		contexts[DEFAULT_CONTEXT].getNode(qualifier).putBoolean(key, value);

-	}

-

-	/**

-	 * Sets a byte array in the {@link DefaultScope}

-	 * 

-	 * @param qualifier

-	 * @param key

-	 *            the key

-	 * @param value

-	 *            the new value

-	 */

-	public static synchronized void setDefaultByteArray(String qualifier, String key, byte[] value) {

-		contexts[DEFAULT_CONTEXT].getNode(qualifier).putByteArray(key, value);

-	}

-

-	/**

-	 * Sets a double in the {@link DefaultScope}

-	 * 

-	 * @param qualifier

-	 * @param key

-	 *            the key

-	 * @param value

-	 *            the new value

-	 */

-	public static synchronized void setDefaultDouble(String qualifier, String key, double value) {

-		contexts[DEFAULT_CONTEXT].getNode(qualifier).putDouble(key, value);

-	}

-

-	/**

-	 * Sets a float in the {@link DefaultScope}

-	 * 

-	 * @param qualifier

-	 * @param key

-	 *            the key

-	 * @param value

-	 *            the new value

-	 */

-	public static synchronized void setDefaultFloat(String qualifier, String key, float value) {

-		contexts[DEFAULT_CONTEXT].getNode(qualifier).putFloat(key, value);

-	}

-

-	/**

-	 * Sets a integer in the {@link DefaultScope}

-	 * 

-	 * @param qualifier

-	 * @param key

-	 *            the key

-	 * @param value

-	 *            the new value

-	 */

-	public static synchronized void setDefaultInt(String qualifier, String key, int value) {

-		contexts[DEFAULT_CONTEXT].getNode(qualifier).putInt(key, value);

-	}

-

-	/**

-	 * Sets a long in the {@link DefaultScope}

-	 * 

-	 * @param qualifier

-	 * @param key

-	 *            the key

-	 * @param value

-	 *            the new value

-	 */

-	public static synchronized void setDefaultLong(String qualifier, String key, long value) {

-		contexts[DEFAULT_CONTEXT].getNode(qualifier).putLong(key, value);

-	}

-

-	/**

-	 * Sets a string in the {@link DefaultScope}

-	 * 

-	 * @param qualifier

-	 * @param key

-	 *            the key

-	 * @param value

-	 *            the new value

-	 */

-	public static synchronized void setDefaultString(String qualifier, String key, String value) {

-		contexts[DEFAULT_CONTEXT].getNode(qualifier).put(key, value);

-	}

-

-	/**

-	 * Sets a double preference in the {@link InstanceScope}.

-	 * 

-	 * @param qualifier

-	 * @param key

-	 *            the key

-	 * @param value

-	 *            the value

-	 */

-	public static synchronized void setDouble(String qualifier, String key, double value) {

-		contexts[INSTANCE_CONTEXT].getNode(qualifier).putDouble(key, value);

-	}

-

-	/**

-	 * Sets a float preference in the {@link InstanceScope}.

-	 * 

-	 * @param qualifier

-	 * @param key

-	 *            the key

-	 * @param value

-	 *            the value

-	 */

-	public static synchronized void setFloat(String qualifier, String key, float value) {

-		contexts[INSTANCE_CONTEXT].getNode(qualifier).putFloat(key, value);

-	}

-

-	/**

-	 * Sets a integer preference in the {@link InstanceScope}.

-	 * 

-	 * @param qualifier

-	 * @param key

-	 *            the key

-	 * @param value

-	 *            the value

-	 */

-	public static synchronized void setInt(String qualifier, String key, int value) {

-		contexts[INSTANCE_CONTEXT].getNode(qualifier).putInt(key, value);

-	}

-

-	/**

-	 * Sets a long preference in the {@link InstanceScope}.

-	 * 

-	 * @param qualifier

-	 * @param key

-	 *            the key

-	 * @param value

-	 *            the value

-	 */

-	public static synchronized void setLong(String qualifier, String key, long value) {

-		contexts[INSTANCE_CONTEXT].getNode(qualifier).putLong(key, value);

-	}

-

-	/**

-	 * Sets a string preference in the {@link InstanceScope}.

-	 * 

-	 * @param qualifier

-	 * @param key

-	 *            the key

-	 * @param value

-	 *            the value

-	 */

-	public static synchronized void setString(String qualifier, String key, String value) {

-		contexts[INSTANCE_CONTEXT].getNode(qualifier).put(key, value);

-	}

-

-	/**

-	 * Sets the given preference to its default value. This is done by removing

-	 * any set value from the {@link InstanceScope}. Has no effect if the given

-	 * key is <code>null</code>.

-	 * 

-	 * @param qualifier

-	 * @param key

-	 *            the key for the preference

-	 */

-	public static synchronized void setToDefault(String qualifier, String key) {

-		if (key != null) {

-			contexts[INSTANCE_CONTEXT].getNode(qualifier).remove(key);

-		}

-	}

-

-	/**

-	 * Constructor

-	 */

-	private Preferences() {

-		// no direct instantiation

-	}

-}

diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/services/local/LocalConnection.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/services/local/LocalConnection.java
deleted file mode 100644
index 9c6e53a..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/services/local/LocalConnection.java
+++ /dev/null
@@ -1,417 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.remote.core.services.local;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.ptp.internal.remote.core.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionChangeEvent;
-import org.eclipse.ptp.remote.core.IRemoteConnectionChangeListener;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.IUserAuthenticator;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
-import org.eclipse.ptp.remote.core.exception.UnableToForwardPortException;
-
-public class LocalConnection implements IRemoteConnection {
-	private String fName = IRemoteConnectionManager.LOCAL_CONNECTION_NAME;
-	private String fAddress = Messages.LocalConnection_1;
-	private String fUsername = System.getProperty("user.name"); //$NON-NLS-1$
-	private boolean fConnected = true;
-	private IPath fWorkingDir = null;
-
-	private final IRemoteConnection fConnection = this;
-	private final IRemoteServices fRemoteServices;
-	private final ListenerList fListeners = new ListenerList();
-
-	public LocalConnection(IRemoteServices services) {
-		fRemoteServices = services;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteConnection#addConnectionChangeListener
-	 * (org.eclipse.ptp.remote.core.IRemoteConnectionChangeListener)
-	 */
-	@Override
-	public void addConnectionChangeListener(IRemoteConnectionChangeListener listener) {
-		fListeners.add(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#close()
-	 */
-	@Override
-	public void close() {
-		if (fConnected) {
-			fConnected = false;
-			fireConnectionChangeEvent(IRemoteConnectionChangeEvent.CONNECTION_CLOSED);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#forwardLocalPort(int,
-	 * java.lang.String, int)
-	 */
-	@Override
-	public void forwardLocalPort(int localPort, String fwdAddress, int fwdPort) throws RemoteConnectionException {
-		throw new UnableToForwardPortException(Messages.LocalConnection_2);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteConnection#forwardLocalPort(java.lang
-	 * .String, int, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	@Override
-	public int forwardLocalPort(String fwdAddress, int fwdPort, IProgressMonitor monitor) throws RemoteConnectionException {
-		throw new UnableToForwardPortException(Messages.LocalConnection_2);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#forwardRemotePort(int,
-	 * java.lang.String, int)
-	 */
-	@Override
-	public void forwardRemotePort(int remotePort, String fwdAddress, int fwdPort) throws RemoteConnectionException {
-		throw new UnableToForwardPortException(Messages.LocalConnection_2);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteConnection#forwardRemotePort(java.
-	 * lang.String, int, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	@Override
-	public int forwardRemotePort(String fwdAddress, int fwdPort, IProgressMonitor monitor) throws RemoteConnectionException {
-		throw new UnableToForwardPortException(Messages.LocalConnection_2);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#getAddress()
-	 */
-	@Override
-	public String getAddress() {
-		return fAddress;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#getAttributes()
-	 */
-	@Override
-	public Map<String, String> getAttributes() {
-		return new HashMap<String, String>();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#getEnv()
-	 */
-	@Override
-	public Map<String, String> getEnv() {
-		return System.getenv();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteConnection#getEnv(java.lang.String)
-	 */
-	@Override
-	public String getEnv(String name) {
-		return System.getenv(name);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#getName()
-	 */
-	@Override
-	public String getName() {
-		return fName;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#getPort()
-	 */
-	@Override
-	public int getPort() {
-		return 0;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteConnection#getProperty(java.lang.String
-	 * )
-	 */
-	@Override
-	public String getProperty(String key) {
-		return System.getProperty(key);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#getRemoteServices()
-	 */
-	@Override
-	public IRemoteServices getRemoteServices() {
-		return fRemoteServices;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#getUsername()
-	 */
-	@Override
-	public String getUsername() {
-		return fUsername;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteFileManager#getWorkingDirectory(org
-	 * .eclipse.core.runtime.IProgressMonitor)
-	 */
-	@Override
-	public String getWorkingDirectory() {
-		if (fWorkingDir == null) {
-			String cwd = System.getProperty("user.home"); //$NON-NLS-1$
-			if (cwd == null) {
-				cwd = System.getProperty("user.dir"); //$NON-NLS-1$;
-			}
-			if (cwd == null) {
-				fWorkingDir = Path.ROOT;
-			} else {
-				fWorkingDir = new Path(cwd);
-			}
-		}
-		return fWorkingDir.toString();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#isOpen()
-	 */
-	@Override
-	public boolean isOpen() {
-		return fConnected;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#open()
-	 */
-	@Override
-	public void open(IProgressMonitor monitor) throws RemoteConnectionException {
-		if (!fConnected) {
-			fConnected = true;
-			fireConnectionChangeEvent(IRemoteConnectionChangeEvent.CONNECTION_OPENED);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#open(org.eclipse.ptp.remote.core.IUserAuthenticator,
-	 * org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	@Override
-	public void open(IUserAuthenticator authenticator, IProgressMonitor monitor) throws RemoteConnectionException {
-		open(monitor);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteConnection#removeConnectionChangeListener
-	 * (org.eclipse.ptp.remote.core.IRemoteConnectionChangeListener)
-	 */
-	@Override
-	public void removeConnectionChangeListener(IRemoteConnectionChangeListener listener) {
-		fListeners.remove(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#removeLocalPortForwarding(int)
-	 */
-	@Override
-	public void removeLocalPortForwarding(int port) throws RemoteConnectionException {
-		// Do nothing
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteConnection#removeRemotePortForwarding(int)
-	 */
-	@Override
-	public void removeRemotePortForwarding(int port) throws RemoteConnectionException {
-		// Do nothing
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteConnection#setAddress(java.lang.String
-	 * )
-	 */
-	@Override
-	public void setAddress(String address) {
-		fAddress = address;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteConnection#setAttribute(java.lang.
-	 * String, java.lang.String)
-	 */
-	@Override
-	public void setAttribute(String key, String value) {
-		// Not supported
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteConnection#setName(java.lang.String)
-	 */
-	@Override
-	public void setName(String name) {
-		fName = name;
-		fireConnectionChangeEvent(IRemoteConnectionChangeEvent.CONNECTION_RENAMED);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteConnection#setPassword(java.lang.String
-	 * )
-	 */
-	@Override
-	public void setPassword(String password) {
-		// Not supported
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#setPort(int)
-	 */
-	@Override
-	public void setPort(int port) {
-		// Not supported
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteConnection#setUsername(java.lang.String
-	 * )
-	 */
-	@Override
-	public void setUsername(String username) {
-		fUsername = username;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteFileManager#setWorkingDirectory(java
-	 * .lang.String)
-	 */
-	@Override
-	public void setWorkingDirectory(String pathStr) {
-		IPath path = new Path(pathStr);
-		if (path.isAbsolute()) {
-			fWorkingDir = path;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteConnection#supportsTCPPortForwarding()
-	 */
-	@Override
-	public boolean supportsTCPPortForwarding() {
-		return false;
-	}
-
-	/**
-	 * Notify all listeners when this connection's status changes.
-	 * 
-	 * @param event
-	 */
-	private void fireConnectionChangeEvent(final int type) {
-		IRemoteConnectionChangeEvent event = new IRemoteConnectionChangeEvent() {
-			@Override
-			public IRemoteConnection getConnection() {
-				return fConnection;
-			}
-
-			@Override
-			public int getType() {
-				return type;
-			}
-		};
-		for (Object listener : fListeners.getListeners()) {
-			((IRemoteConnectionChangeListener) listener).connectionChanged(event);
-		}
-	}
-
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/services/local/LocalConnectionManager.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/services/local/LocalConnectionManager.java
deleted file mode 100644
index 61e589e..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/services/local/LocalConnectionManager.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.remote.core.services.local;
-
-import java.net.URI;
-
-import org.eclipse.core.filesystem.EFS;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
-
-public class LocalConnectionManager implements IRemoteConnectionManager {
-	private final IRemoteConnection fLocalConnection;
-
-	public LocalConnectionManager(IRemoteServices services) {
-		fLocalConnection = new LocalConnection(services);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteConnectionManager#getConnection(java
-	 * .lang.String)
-	 */
-	@Override
-	public IRemoteConnection getConnection(String name) {
-		if (name.equals(fLocalConnection.getName())) {
-			return fLocalConnection;
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteConnectionManager#getConnection(java
-	 * .net.URI)
-	 */
-	@Override
-	public IRemoteConnection getConnection(URI uri) {
-		if (uri.getScheme().equals(EFS.getLocalFileSystem().getScheme())) {
-			return fLocalConnection;
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteConnectionManager#getConnections()
-	 */
-	@Override
-	public IRemoteConnection[] getConnections() {
-		return new IRemoteConnection[] { fLocalConnection };
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteConnectionManager#newConnection(java
-	 * .lang.String)
-	 */
-	@Override
-	public IRemoteConnection newConnection(String name) throws RemoteConnectionException {
-		return fLocalConnection;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteConnectionManager#removeConnection
-	 * (org.eclipse.ptp.remote.core.IRemoteConnection)
-	 */
-	@Override
-	public void removeConnection(IRemoteConnection connection) {
-		// Nothing
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/services/local/LocalFileManager.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/services/local/LocalFileManager.java
deleted file mode 100644
index ddd711a..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/services/local/LocalFileManager.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.remote.core.services.local;
-
-import java.net.URI;
-
-import org.eclipse.core.filesystem.EFS;
-import org.eclipse.core.filesystem.IFileStore;
-import org.eclipse.core.filesystem.URIUtil;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-
-public class LocalFileManager implements IRemoteFileManager {
-	private final LocalConnection fConnection;
-
-	public LocalFileManager(LocalConnection conn) {
-		fConnection = conn;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ptp.remote.core.IRemoteFileManager#getDirectorySeparator()
-	 */
-	public String getDirectorySeparator() {
-		return System.getProperty("file.separator", "/"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ptp.remote.core.IRemoteFileManager#getResource(java.lang.String)
-	 */
-	public IFileStore getResource(String pathStr) {
-		IPath path = new Path(pathStr);
-		if (!path.isAbsolute()) {
-			path = new Path(fConnection.getWorkingDirectory()).append(path);
-		}
-		return EFS.getLocalFileSystem().getStore(path);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ptp.remote.core.IRemoteFileManager#toPath(java.net.URI)
-	 */
-	public String toPath(URI uri) {
-		return URIUtil.toPath(uri).toString();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ptp.remote.core.IRemoteFileManager#toURI(org.eclipse.core.runtime.IPath)
-	 */
-	public URI toURI(IPath path) {
-		return URIUtil.toURI(path);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ptp.remote.core.IRemoteFileManager#toURI(java.lang.String)
-	 */
-	public URI toURI(String path) {
-		return URIUtil.toURI(path);
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/services/local/LocalProcess.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/services/local/LocalProcess.java
deleted file mode 100644
index acfc3e0..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/services/local/LocalProcess.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.remote.core.services.local;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.PipedInputStream;
-import java.io.PipedOutputStream;
-
-import org.eclipse.ptp.remote.core.AbstractRemoteProcess;
-
-public class LocalProcess extends AbstractRemoteProcess {
-	private static int refCount = 0;
-
-	private final Process localProcess;
-	private InputStream procStdout;
-	private InputStream procStderr;
-	private Thread stdoutReader;
-	private Thread stderrReader;
-	private final Thread completedChecker;
-	private volatile boolean isCompleted;
-
-	/**
-	 * Thread to merge stdout and stderr. Keeps refcount so that output stream
-	 * is not closed too early.
-	 * 
-	 * @author greg
-	 * 
-	 */
-	private class ProcOutputMerger implements Runnable {
-		private final static int BUF_SIZE = 8192;
-
-		private final InputStream input;
-		private final OutputStream output;
-
-		public ProcOutputMerger(InputStream input, OutputStream output) {
-			this.input = input;
-			this.output = output;
-			synchronized (this.output) {
-				refCount++;
-			}
-		}
-
-		@Override
-		public void run() {
-			int len;
-			byte b[] = new byte[BUF_SIZE];
-
-			try {
-				while ((len = input.read(b)) > 0) {
-					output.write(b, 0, len);
-				}
-			} catch (IOException e) {
-				// Ignore
-			}
-			synchronized (output) {
-				if (--refCount == 0) {
-					try {
-						output.close();
-					} catch (IOException e) {
-						// Ignore
-					}
-				}
-			}
-		}
-	}
-
-	public class NullInputStream extends InputStream {
-		@Override
-		public int read() throws IOException {
-			return -1;
-		}
-
-		@Override
-		public int available() {
-			return 0;
-		}
-	}
-
-	public LocalProcess(Process proc, boolean merge) throws IOException {
-		localProcess = proc;
-
-		if (merge) {
-			PipedOutputStream pipedOutput = new PipedOutputStream();
-
-			procStderr = new NullInputStream();
-			procStdout = new PipedInputStream(pipedOutput);
-
-			stderrReader = new Thread(new ProcOutputMerger(proc.getErrorStream(), pipedOutput));
-			stdoutReader = new Thread(new ProcOutputMerger(proc.getInputStream(), pipedOutput));
-
-			stderrReader.start();
-			stdoutReader.start();
-		} else {
-			procStderr = localProcess.getErrorStream();
-			procStdout = localProcess.getInputStream();
-		}
-
-		completedChecker = new Thread(new Runnable() {
-			@Override
-			public void run() {
-				while (!isCompleted) {
-					try {
-						localProcess.waitFor();
-					} catch (InterruptedException e) {
-						continue;
-					}
-					isCompleted = true;
-				}
-			}
-
-		});
-		completedChecker.start();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Process#destroy()
-	 */
-	@Override
-	public void destroy() {
-		localProcess.destroy();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Process#exitValue()
-	 */
-	@Override
-	public int exitValue() {
-		return localProcess.exitValue();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Process#getErrorStream()
-	 */
-	@Override
-	public InputStream getErrorStream() {
-		return procStderr;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Process#getInputStream()
-	 */
-	@Override
-	public InputStream getInputStream() {
-		return procStdout;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Process#getOutputStream()
-	 */
-	@Override
-	public OutputStream getOutputStream() {
-		return localProcess.getOutputStream();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Process#waitFor()
-	 */
-	@Override
-	public int waitFor() throws InterruptedException {
-		return localProcess.waitFor();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.AbstractRemoteProcess#isCompleted()
-	 */
-	@Override
-	public boolean isCompleted() {
-		return isCompleted;
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/services/local/LocalProcessBuilder.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/services/local/LocalProcessBuilder.java
deleted file mode 100644
index c22f784..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/services/local/LocalProcessBuilder.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.remote.core.services.local;
-
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.eclipse.cdt.utils.spawner.ProcessFactory;
-import org.eclipse.core.filesystem.EFS;
-import org.eclipse.core.filesystem.IFileStore;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.ptp.remote.core.AbstractRemoteProcessBuilder;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteProcess;
-
-public class LocalProcessBuilder extends AbstractRemoteProcessBuilder {
-	private final ProcessFactory localProcessBuilder;
-	private final Map<String, String> remoteEnv = new HashMap<String, String>();
-
-	public LocalProcessBuilder(IRemoteConnection conn, List<String> command) {
-		super(conn, command);
-		remoteEnv.putAll(System.getenv());
-		localProcessBuilder = ProcessFactory.getFactory();
-	}
-
-	public LocalProcessBuilder(IRemoteConnection conn, String... command) {
-		this(conn, Arrays.asList(command));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.AbstractRemoteProcessBuilder#directory()
-	 */
-	@Override
-	public IFileStore directory() {
-		IFileStore dir = super.directory();
-		if (dir == null) {
-			dir = EFS.getLocalFileSystem().getStore(new Path(connection().getWorkingDirectory()));
-			directory(dir);
-		}
-		return dir;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.AbstractRemoteProcessBuilder#environment()
-	 */
-	@Override
-	public Map<String, String> environment() {
-		return remoteEnv;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.AbstractRemoteProcessBuilder#getSupportedFlags
-	 * ()
-	 */
-	@Override
-	public int getSupportedFlags() {
-		return NONE;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteProcessBuilder#start(int)
-	 */
-	@Override
-	public IRemoteProcess start(int flags) throws IOException {
-		String commandArray[] = command().toArray(new String[0]);
-		String environmentArray[] = new String[environment().size()];
-		int index = 0;
-		for (Entry<String, String> entry : environment().entrySet()) {
-			environmentArray[index++] = entry.getKey() + "=" + entry.getValue(); //$NON-NLS-1$
-		}
-		Process localProc;
-		if (directory() != null) {
-			try {
-				localProc = localProcessBuilder.exec(commandArray, environmentArray,
-						directory().toLocalFile(EFS.NONE, new NullProgressMonitor()));
-			} catch (CoreException e) {
-				throw new IOException(e.getMessage());
-			}
-		} else {
-			localProc = localProcessBuilder.exec(commandArray, environmentArray);
-		}
-		return new LocalProcess(localProc, redirectErrorStream());
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/services/local/LocalResource.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/services/local/LocalResource.java
deleted file mode 100644
index 30ec370..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/services/local/LocalResource.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 IBM Corporation.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.remote.core.services.local;
-
-import java.net.URI;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.ptp.remote.core.IRemoteResource;
-
-public class LocalResource implements IRemoteResource {
-	private IResource fResource;
-
-	public LocalResource(IResource resource) {
-		fResource = resource;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteResource#getDefaultLocationURI(org.eclipse.core.resources.IResource)
-	 */
-	@Override
-	public URI getActiveLocationURI() {
-		return fResource.getLocationURI();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteResource#getResource()
-	 */
-	@Override
-	public IResource getResource() {
-		return fResource;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteResource#refresh(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	@Override
-	public void refresh(IProgressMonitor monitor) throws CoreException {
-		fResource.refreshLocal(IResource.DEPTH_INFINITE, monitor);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteResource#setResource(org.eclipse.core.resources.IResource)
-	 */
-	@Override
-	public void setResource(IResource resource) {
-		fResource = resource;
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/services/local/LocalServices.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/services/local/LocalServices.java
deleted file mode 100644
index def984d..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/services/local/LocalServices.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.remote.core.services.local;
-
-import java.io.IOException;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.core.IRemoteProcess;
-import org.eclipse.ptp.remote.core.IRemoteProcessBuilder;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.IRemoteServicesDescriptor;
-
-public class LocalServices implements IRemoteServices {
-	public static final String LocalServicesId = "org.eclipse.ptp.remote.LocalServices"; //$NON-NLS-1$
-
-	private IRemoteFileManager fFileMgr = null;
-	private final IRemoteConnectionManager fConnMgr = new LocalConnectionManager(this);
-	private final IRemoteServicesDescriptor fDescriptor;
-
-	public LocalServices(IRemoteServicesDescriptor descriptor) {
-		fDescriptor = descriptor;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteServicesDescriptor#canCreateConnections
-	 * ()
-	 */
-	@Override
-	public boolean canCreateConnections() {
-		return fDescriptor.canCreateConnections();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteServices#getCommandShell(org.eclipse.ptp.remote.core.IRemoteConnection, int)
-	 */
-	@Override
-	public IRemoteProcess getCommandShell(IRemoteConnection conn, int flags) throws IOException {
-		throw new IOException("Not currently implemented"); //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteServicesDescriptor#getConnectionManager
-	 * ()
-	 */
-	@Override
-	public IRemoteConnectionManager getConnectionManager() {
-		return fConnMgr;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteServicesDescriptor#getFileManager(
-	 * org.eclipse.ptp.remote.core.IRemoteConnection)
-	 */
-	@Override
-	public IRemoteFileManager getFileManager(IRemoteConnection conn) {
-		if (!(conn instanceof LocalConnection)) {
-			return null;
-		}
-		if (fFileMgr == null) {
-			fFileMgr = new LocalFileManager((LocalConnection) conn);
-		}
-		return fFileMgr;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteServicesDescriptor#getId()
-	 */
-	@Override
-	public String getId() {
-		return fDescriptor.getId();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteServicesDescriptor#getName()
-	 */
-	@Override
-	public String getName() {
-		return fDescriptor.getName();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteServicesDescriptor#getProcessBuilder
-	 * (org.eclipse.ptp.remote.core.IRemoteConnection, java.util.List)
-	 */
-	@Override
-	public IRemoteProcessBuilder getProcessBuilder(IRemoteConnection conn, List<String> command) {
-		return new LocalProcessBuilder(conn, command);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteServicesDescriptor#getProcessBuilder
-	 * (org.eclipse.ptp.remote.core.IRemoteConnection, java.lang.String[])
-	 */
-	@Override
-	public IRemoteProcessBuilder getProcessBuilder(IRemoteConnection conn, String... command) {
-		return new LocalProcessBuilder(conn, command);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteServicesDescriptor#getScheme()
-	 */
-	@Override
-	public String getScheme() {
-		return fDescriptor.getScheme();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteServicesDescriptor#getServicesExtension
-	 * (org.eclipse.ptp.remote.core.IRemoteConnection, java.lang.Class)
-	 */
-	@SuppressWarnings({ "rawtypes" })
-	public Object getServicesExtension(IRemoteConnection conn, Class extension) {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteServices#initialize(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	@Override
-	public boolean initialize(IProgressMonitor monitor) {
-		return true;
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/services/local/LocalServicesFactory.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/services/local/LocalServicesFactory.java
deleted file mode 100644
index 971bb4c..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/internal/remote/core/services/local/LocalServicesFactory.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.remote.core.services.local;
-
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.IRemoteServicesDescriptor;
-import org.eclipse.ptp.remote.core.IRemoteServicesFactory;
-
-public class LocalServicesFactory implements IRemoteServicesFactory {
-	private static LocalServices services = null;
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ptp.remote.core.IRemoteServicesFactory#getServices(org.eclipse.ptp.remote.core.IRemoteServicesDescriptor)
-	 */
-	public IRemoteServices getServices(IRemoteServicesDescriptor descriptor) {
-		if (services == null) {
-			services = new LocalServices(descriptor);
-		}
-		return services;
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/AbstractRemoteProcess.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/AbstractRemoteProcess.java
deleted file mode 100644
index 1bdf3c3..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/AbstractRemoteProcess.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.core;
-
-import java.io.InputStream;
-import java.io.OutputStream;
-
-/**
- * Abstract base class for remote processes. Implementors can use this class to provide a default remote process implementation.
- */
-public abstract class AbstractRemoteProcess extends Process implements IRemoteProcess {
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Process#destroy()
-	 */
-	@Override
-	public void destroy() {
-		// Nothing
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Process#exitValue()
-	 */
-	@Override
-	public int exitValue() {
-		return 0;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Process#getErrorStream()
-	 */
-	@Override
-	public InputStream getErrorStream() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Process#getInputStream()
-	 */
-	@Override
-	public InputStream getInputStream() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Process#getOutputStream()
-	 */
-	@Override
-	public OutputStream getOutputStream() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Process#waitFor()
-	 */
-	@Override
-	public int waitFor() throws InterruptedException {
-		return 0;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteProcess#isCompleted()
-	 */
-	@Override
-	public boolean isCompleted() {
-		return true;
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/AbstractRemoteProcessBuilder.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/AbstractRemoteProcessBuilder.java
deleted file mode 100644
index bf689dd..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/AbstractRemoteProcessBuilder.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.core;
-
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.filesystem.IFileStore;
-
-/**
- * Abstract base class for remote process builders. Implementors can use this class to provide a default implementation of a remote
- * process builder.
- * 
- * @since 5.0
- */
-public abstract class AbstractRemoteProcessBuilder implements IRemoteProcessBuilder {
-	private List<String> fCommandArgs;
-	private IRemoteConnection fRemoteConnection;
-	private IFileStore fRemoteDir = null;
-	private boolean fRedirectErrorStream = false;
-
-	public AbstractRemoteProcessBuilder(IRemoteConnection conn, List<String> command) {
-		fRemoteConnection = conn;
-		fCommandArgs = command;
-	}
-
-	public AbstractRemoteProcessBuilder(IRemoteConnection conn, String... command) {
-		this(conn, Arrays.asList(command));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteProcessBuilder#command()
-	 */
-	@Override
-	public List<String> command() {
-		return fCommandArgs;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteProcessBuilder#command(java.util.List)
-	 */
-	@Override
-	public IRemoteProcessBuilder command(List<String> command) {
-		fCommandArgs = command;
-		return this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteProcessBuilder#command(java.lang.String
-	 * )
-	 */
-	@Override
-	public IRemoteProcessBuilder command(String... command) {
-		fCommandArgs = Arrays.asList(command);
-		return this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteProcessBuilder#connection()
-	 */
-	@Override
-	public IRemoteConnection connection() {
-		return fRemoteConnection;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteProcessBuilder#connection(org.eclipse
-	 * .ptp.remote.core.IRemoteConnection)
-	 */
-	@Override
-	public IRemoteProcessBuilder connection(IRemoteConnection conn) {
-		fRemoteConnection = conn;
-		return this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteProcessBuilder#directory()
-	 */
-	@Override
-	public IFileStore directory() {
-		return fRemoteDir;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteProcessBuilder#directory(org.eclipse
-	 * .core.filesystem.IFileStore)
-	 */
-	@Override
-	public IRemoteProcessBuilder directory(IFileStore directory) {
-		fRemoteDir = directory;
-		return this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteProcessBuilder#environment()
-	 */
-	@Override
-	public abstract Map<String, String> environment();
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteProcessBuilder#getSupportedFlags()
-	 */
-	/**
-	 * @since 5.0
-	 */
-	@Override
-	public abstract int getSupportedFlags();
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteProcessBuilder#redirectErrorStream()
-	 */
-	@Override
-	public boolean redirectErrorStream() {
-		return fRedirectErrorStream;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteProcessBuilder#redirectErrorStream
-	 * (boolean)
-	 */
-	@Override
-	public IRemoteProcessBuilder redirectErrorStream(boolean redirectErrorStream) {
-		this.fRedirectErrorStream = redirectErrorStream;
-		return this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteProcessBuilder#start()
-	 */
-	@Override
-	public IRemoteProcess start() throws IOException {
-		return start(NONE);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteProcessBuilder#start(int)
-	 */
-	/**
-	 * @since 5.0
-	 */
-	@Override
-	public abstract IRemoteProcess start(int flags) throws IOException;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#toString()
-	 */
-	@Override
-	public String toString() {
-		StringBuilder res = new StringBuilder();
-		for (String arg : command()) {
-			res.append(arg);
-			res.append(" "); //$NON-NLS-1$
-		}
-		return res.toString();
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/AbstractRemoteServices.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/AbstractRemoteServices.java
deleted file mode 100644
index 3089466..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/AbstractRemoteServices.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.core;
-
-/**
- * Abstract base class for remote services. Implementors can use this class to provide a default implementation of a remote
- * services provider.
- * 
- * @since 5.0
- */
-public abstract class AbstractRemoteServices implements IRemoteServices {
-
-	protected final IRemoteServicesDescriptor fDescriptor;
-
-	public AbstractRemoteServices(IRemoteServicesDescriptor descriptor) {
-		fDescriptor = descriptor;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteServicesDescriptor#canCreateConnections
-	 * ()
-	 */
-	@Override
-	public boolean canCreateConnections() {
-		return fDescriptor.canCreateConnections();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteServicesDescriptor#getId()
-	 */
-	@Override
-	public String getId() {
-		return fDescriptor.getId();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteServicesDescriptor#getName()
-	 */
-	@Override
-	public String getName() {
-		return fDescriptor.getName();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteServicesDescriptor#getScheme()
-	 */
-	@Override
-	public String getScheme() {
-		return fDescriptor.getScheme();
-	}
-}
\ No newline at end of file
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteConnection.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteConnection.java
deleted file mode 100644
index ebcff32..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteConnection.java
+++ /dev/null
@@ -1,334 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.core;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
-
-/**
- * Abstraction of a connection to a remote system. Clients should use the set methods to provide information on the remote system,
- * then call the {{@link #open(IProgressMonitor)} method. Once the connection is completed, call the {@link #close()} method to
- * terminate the connection.
- */
-public interface IRemoteConnection {
-	public final static String OS_NAME_PROPERTY = "os.name"; //$NON-NLS-1$
-	public final static String OS_VERSION_PROPERTY = "os.version"; //$NON-NLS-1$
-	public final static String OS_ARCH_PROPERTY = "os.arch"; //$NON-NLS-1$
-	/**
-	 * @since 6.0
-	 */
-	public final static String FILE_SEPARATOR_PROPERTY = "file.separator"; //$NON-NLS-1$
-	/**
-	 * @since 6.0
-	 */
-	public final static String PATH_SEPARATOR_PROPERTY = "path.separator"; //$NON-NLS-1$
-	/**
-	 * @since 6.0
-	 */
-	public final static String LINE_SEPARATOR_PROPERTY = "line.separator"; //$NON-NLS-1$
-	/**
-	 * @since 4.0
-	 */
-	public final static String USER_HOME_PROPERTY = "user.home"; //$NON-NLS-1$
-
-	/**
-	 * Register a listener that will be notified when this connection's status changes.
-	 * 
-	 * @param listener
-	 */
-	public void addConnectionChangeListener(IRemoteConnectionChangeListener listener);
-
-	/**
-	 * Close the connection. Must be called to terminate the connection.
-	 */
-	public void close();
-
-	/**
-	 * Forward local port localPort to remote port fwdPort on remote machine fwdAddress. If this IRemoteConnection is not to
-	 * fwdAddress, the port will be routed via the connection machine to fwdAddress.
-	 * 
-	 * @param localPort
-	 *            local port to forward
-	 * @param fwdAddress
-	 *            address of remote machine
-	 * @param fwdPort
-	 *            remote port on remote machine
-	 * @throws RemoteConnectionException
-	 */
-	public void forwardLocalPort(int localPort, String fwdAddress, int fwdPort) throws RemoteConnectionException;
-
-	/**
-	 * Forward a local port to remote port fwdPort on remote machine fwdAddress. The local port is chosen dynamically and returned
-	 * by the method. If this IRemoteConnection is not to fwdAddress, the port will be routed via the connection machine to
-	 * fwdAddress.
-	 * 
-	 * @param fwdAddress
-	 * @param fwdPort
-	 * @param monitor
-	 * @return local port number
-	 * @throws RemoteConnectionException
-	 */
-	public int forwardLocalPort(String fwdAddress, int fwdPort, IProgressMonitor monitor) throws RemoteConnectionException;
-
-	/**
-	 * Forward remote port remotePort to port fwdPort on machine fwdAddress. When a connection is made to remotePort on the remote
-	 * machine, it is forwarded via this IRemoteConnection to fwdPort on machine fwdAddress.
-	 * 
-	 * @param remotePort
-	 *            remote port to forward
-	 * @param fwdAddress
-	 *            address of recipient machine
-	 * @param fwdPort
-	 *            port on recipient machine
-	 * @throws RemoteConnectionException
-	 */
-	public void forwardRemotePort(int remotePort, String fwdAddress, int fwdPort) throws RemoteConnectionException;
-
-	/**
-	 * Forward a remote port to port fwdPort on remote machine fwdAddress. The remote port is chosen dynamically and returned by the
-	 * method. When a connection is made to this port on the remote machine, it is forwarded via this IRemoteConnection to fwdPort
-	 * on machine fwdAddress.
-	 * 
-	 * If fwdAddress is the empty string ("") then the fwdPort will be bound to any address on all interfaces. Note that this
-	 * requires enabling the GatewayPort sshd option on some systems.
-	 * 
-	 * @param fwdAddress
-	 * @param fwdPort
-	 * @param monitor
-	 * @return remote port number
-	 * @throws RemoteConnectionException
-	 */
-	public int forwardRemotePort(String fwdAddress, int fwdPort, IProgressMonitor monitor) throws RemoteConnectionException;
-
-	/**
-	 * Gets the implementation dependent address for this connection
-	 * 
-	 * return address
-	 */
-	public String getAddress();
-
-	/**
-	 * Get the implementation specific attributes for the connection.
-	 * 
-	 * NOTE: the attributes do not include any security related information (e.g. passwords, keys, etc.)
-	 * 
-	 * @return a map containing the connection attribute keys and values
-	 */
-	public Map<String, String> getAttributes();
-
-	/**
-	 * Returns an unmodifiable string map view of the remote environment. The connection must be open prior to calling this method.
-	 * 
-	 * @return the remote environment
-	 * @since 5.0
-	 */
-	public Map<String, String> getEnv();
-
-	/**
-	 * Returns the value of an environment variable. The connection must be open prior to calling this method.
-	 * 
-	 * @param name
-	 *            name of the environment variable
-	 * @return value of the environment variable or null if the variable is not defined
-	 */
-	public String getEnv(String name);
-
-	/**
-	 * Get unique name for this connection.
-	 * 
-	 * @return connection name
-	 */
-	public String getName();
-
-	/**
-	 * Gets the port for this connection. Only valid if supported by the service provider.
-	 * 
-	 * return port number
-	 * 
-	 * @since 5.0
-	 */
-	public int getPort();
-
-	/**
-	 * Gets the remote system property indicated by the specified key. The connection must be open prior to calling this method.
-	 * 
-	 * The following keys are supported:
-	 * 
-	 * <pre>
-	 * os.name			Operating system name 
-	 * os.arch			Operating system architecture
-	 * os.version		Operating system version
-	 * file.separator	File separator ("/" on UNIX)
-	 * path.separator	Path separator (":" on UNIX)
-	 * line.separator	Line separator ("\n" on UNIX)
-	 * user.home		Home directory
-	 * </pre>
-	 * 
-	 * @param key
-	 *            the name of the property
-	 * @return the string value of the property, or null if no property has that key
-	 */
-	public String getProperty(String key);
-
-	/**
-	 * Get the remote services provider for this connection.
-	 * 
-	 * @return remote services provider
-	 * @since 4.0
-	 */
-	public IRemoteServices getRemoteServices();
-
-	/**
-	 * Gets the username for this connection
-	 * 
-	 * return username
-	 */
-	public String getUsername();
-
-	/**
-	 * Get the working directory. Relative paths will be resolved using this path.
-	 * 
-	 * The remote connection does not need to be open to use this method, however a default directory path, rather than the actual
-	 * working directory, may be returned in this case.
-	 * 
-	 * @return String representing the current working directory
-	 * @since 4.0
-	 */
-	public String getWorkingDirectory();
-
-	/**
-	 * Test if the connection is open.
-	 * 
-	 * @return true if connection is open.
-	 */
-	public boolean isOpen();
-
-	/**
-	 * Open the connection. Must be called before the connection can be used.
-	 * 
-	 * @param monitor
-	 *            the progress monitor to use for reporting progress to the user. It is the caller's responsibility to call done()
-	 *            on the given monitor. Accepts null, indicating that no progress should be reported and that the operation cannot
-	 *            be cancelled.
-	 * @throws RemoteConnectionException
-	 */
-	public void open(IProgressMonitor monitor) throws RemoteConnectionException;
-
-	/**
-	 * Open the connection. Must be called before the connection can be used.
-	 * 
-	 * @param authenticator
-	 *            authenticator to allow the caller to manage interaction with the user
-	 * @param monitor
-	 *            the progress monitor to use for reporting progress to the user. It is the caller's responsibility to call done()
-	 *            on the given monitor. Accepts null, indicating that no progress should be reported and that the operation cannot
-	 *            be cancelled.
-	 * @throws RemoteConnectionException
-	 * @since 7.0
-	 */
-	public void open(IUserAuthenticator authenticator, IProgressMonitor monitor) throws RemoteConnectionException;
-
-	/**
-	 * Remove a listener that will be notified when this connection's status changes.
-	 * 
-	 * @param listener
-	 */
-	public void removeConnectionChangeListener(IRemoteConnectionChangeListener listener);
-
-	/**
-	 * Remove the local port forwarding associated with the given port.
-	 * 
-	 * @param port
-	 *            forwarded port
-	 * @throws RemoteConnectionException
-	 * @since 7.0
-	 */
-	public void removeLocalPortForwarding(int port) throws RemoteConnectionException;
-
-	/**
-	 * Remove the remote port forwarding associated with the given port.
-	 * 
-	 * @param port
-	 *            forwarded port
-	 * @throws RemoteConnectionException
-	 * @since 7.0
-	 */
-	public void removeRemotePortForwarding(int port) throws RemoteConnectionException;
-
-	/**
-	 * Set the address for this connection
-	 * 
-	 * @param address
-	 */
-	public void setAddress(String address);
-
-	/**
-	 * Set an implementation dependent attribute for the connection. Attributes keys supported by the connection can be obtained
-	 * using {@link #getAttributes()}
-	 * 
-	 * @param key
-	 *            attribute key
-	 * @param value
-	 *            attribute value
-	 * @since 5.0
-	 */
-	public void setAttribute(String key, String value);
-
-	/**
-	 * Set the name for this connection
-	 * 
-	 * @param name
-	 */
-	public void setName(String name);
-
-	/**
-	 * Set the password for this connection
-	 * 
-	 * @param password
-	 * @since 5.0
-	 */
-	public void setPassword(String password);
-
-	/**
-	 * Set the port used for this connection. Only valid if supported by the underlying service provider.
-	 * 
-	 * @param port
-	 *            port number for the connection
-	 * @since 5.0
-	 */
-	public void setPort(int port);
-
-	/**
-	 * Set the username for this connection
-	 * 
-	 * @param username
-	 */
-	public void setUsername(String username);
-
-	/**
-	 * Set the working directory. Relative paths will be resolved using this path. The path must be valid and absolute for any
-	 * changes to be made.
-	 * 
-	 * @param path
-	 *            String representing the current working directory
-	 * @since 4.0
-	 */
-	public void setWorkingDirectory(String path);
-
-	/**
-	 * Test if this connection supports forwarding of TCP connections
-	 * 
-	 * @return true if TCP port forwarding is supported
-	 */
-	public boolean supportsTCPPortForwarding();
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteConnectionChangeEvent.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteConnectionChangeEvent.java
deleted file mode 100644
index f9924d1..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteConnectionChangeEvent.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.core;
-
-/**
- * Event representing a change in connection status. The {@link #getType()} method can be used to obtain information about the type
- * of event that occurred.
- */
-public interface IRemoteConnectionChangeEvent {
-	/**
-	 * Event indicating that the connection was closed.
-	 */
-	public static final int CONNECTION_CLOSED = 1 << 0;
-
-	/**
-	 * Event indicating that the connection was opened.
-	 */
-	public static final int CONNECTION_OPENED = 1 << 1;
-
-	/**
-	 * Event indicating that the connection was closed abnormally.
-	 */
-	public static final int CONNECTION_ABORTED = 1 << 2;
-
-	/**
-	 * Event indicating that the connection name was changed.
-	 */
-	public static final int CONNECTION_RENAMED = 1 << 3;
-
-	/**
-	 * Get the connection that has changed.
-	 * 
-	 * @return IRemoteConnection
-	 */
-	public IRemoteConnection getConnection();
-
-	/**
-	 * Returns the type of event being reported. This type
-	 * is obtained by bitwise OR'ing the event types together.
-	 * 
-	 * {@link #CONNECTION_CLOSED} {@link #CONNECTION_OPENED} {@link #CONNECTION_ABORTED} {@link #CONNECTION_RENAMED}
-	 * 
-	 * @return a bitwise OR of event type constants
-	 */
-	public int getType();
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteConnectionChangeListener.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteConnectionChangeListener.java
deleted file mode 100644
index 46e226f..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteConnectionChangeListener.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.core;
-
-import java.util.EventListener;
-
-/**
- * Listener used to register for notification of connection status changes. Clients should register a listener using the
- * {@link IRemoteConnection#addConnectionChangeListener(IRemoteConnectionChangeListener)} method.
- */
-public interface IRemoteConnectionChangeListener extends EventListener {
-
-	/**
-	 * Notifies this listener that the status of a connection has changed.
-	 * 
-	 * @param event
-	 *            the connection change event
-	 */
-
-	public void connectionChanged(IRemoteConnectionChangeEvent event);
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteConnectionManager.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteConnectionManager.java
deleted file mode 100644
index 7e55345..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteConnectionManager.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.core;
-
-import java.net.URI;
-
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
-
-/**
- * Interface for managing connections to remote systems.
- */
-public interface IRemoteConnectionManager {
-	/**
-	 * The name of the connection for local services. There is only one connection for local services.
-	 * 
-	 * @since 7.0
-	 */
-	public static String LOCAL_CONNECTION_NAME = "Local"; //$NON-NLS-1$
-
-	/**
-	 * Gets the remote connection corresponding to the supplied name.
-	 * 
-	 * @param name
-	 *            name of the connection (as returned by {@link IRemoteConnection#getName()})
-	 * @return remote connection or null if no connection exists
-	 */
-	public IRemoteConnection getConnection(String name);
-
-	/**
-	 * Gets the remote connection corresponding to the supplied URI.
-	 * 
-	 * @param uri
-	 *            URI containing a schema for this remote connection
-	 * @return remote connection or null if no connection exists or the schema
-	 *         is incorrect
-	 * @since 4.0
-	 */
-	public IRemoteConnection getConnection(URI uri);
-
-	/**
-	 * Get all the connections for this service provider.
-	 * 
-	 * @return connections that we know about
-	 */
-	public IRemoteConnection[] getConnections();
-
-	/**
-	 * Creates a new remote connection named with supplied name. The connection
-	 * attributes will be the default for the implementation.
-	 * 
-	 * @param name
-	 *            name of the connection
-	 * @return a new connection with the supplied name
-	 * @throws RemoteConnectionException
-	 *             if connection creation failed
-	 * @since 5.0
-	 */
-	public IRemoteConnection newConnection(String name) throws RemoteConnectionException;
-
-	/**
-	 * Remove a connection and all resources associated with it.
-	 * 
-	 * @param connection
-	 *            connection to remove
-	 * @throws RemoteConnectionException
-	 *             if the connection could not be removed
-	 */
-	public void removeConnection(IRemoteConnection connection) throws RemoteConnectionException;
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteFileManager.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteFileManager.java
deleted file mode 100644
index 7951ed6..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteFileManager.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.core;
-
-import java.net.URI;
-
-import org.eclipse.core.filesystem.IFileStore;
-import org.eclipse.core.runtime.IPath;
-
-/**
- * Interface for managing resources on a remote system.
- */
-public interface IRemoteFileManager {
-	/**
-	 * Get the resource associated with path. IFileStore can then be used to
-	 * perform operations on the file.
-	 * 
-	 * The remote connection does not need to be open to use this method, but
-	 * subsequent operations on the IFileStore that access the underlying remote
-	 * filesystem may require the connection to be open.
-	 * 
-	 * @param path
-	 *            path to resource
-	 * @return the file store representing the remote path
-	 */
-	public IFileStore getResource(String path);
-
-	/**
-	 * Gets the directory separator on the target system.
-	 * 
-	 * @return String
-	 * @since 4.0
-	 */
-	public String getDirectorySeparator();
-
-	/**
-	 * Convert URI to a remote path. This path is suitable for direct file
-	 * operations <i>on the remote system</i>.
-	 * 
-	 * The remote connection does not need to be open to use this method.
-	 * 
-	 * @return IPath representing the remote path
-	 */
-	public String toPath(URI uri);
-
-	/**
-	 * Convert remote path to equivalent URI. This URI is suitable for EFS
-	 * operations <i>on the local system</i>.
-	 * 
-	 * The remote connection does not need to be open to use this method.
-	 * 
-	 * @param path
-	 *            path on remote system
-	 * @return URI representing path on remote system, or null if the path is
-	 *         invalid
-	 */
-	public URI toURI(IPath path);
-
-	/**
-	 * Convert string representation of a remote path to equivalent URI. This
-	 * URI is suitable for EFS operations <i>on the local system</i>.
-	 * 
-	 * The remote connection does not need to be open to use this method.
-	 * 
-	 * @param path
-	 *            path on remote system
-	 * @return URI representing path on remote system, or null if the path is
-	 *         invalid
-	 */
-	public URI toURI(String path);
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemotePreferenceConstants.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemotePreferenceConstants.java
deleted file mode 100644
index 09f10a7..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemotePreferenceConstants.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.core;
-
-/**
- * Preference constants that can be used to check the default remote service provider preference.
- * 
- * @since 6.0
- */
-public interface IRemotePreferenceConstants {
-	/**
-	 * Preference setting for the default remote services provider. Clients can check this preference to see if a default provider
-	 * has been set, and if so, what the provider ID is.
-	 */
-	public static final String PREF_REMOTE_SERVICES_ID = "remoteServicesId"; //$NON-NLS-1$
-
-	/**
-	 * ID of the Remote Tools provider
-	 * 
-	 * @since 6.0
-	 */
-	public static final String REMOTE_TOOLS_REMOTE_SERVICES_ID = "org.eclipse.ptp.remote.RemoteTools"; //$NON-NLS-1$
-
-	/**
-	 * ID of the RSE provider
-	 * 
-	 * @since 6.0
-	 */
-	public static final String RSE_REMOTE_SERVICES_ID = "org.eclipse.ptp.remote.RSERemoteServices"; //$NON-NLS-1$
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteProcess.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteProcess.java
deleted file mode 100644
index 96f590e..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteProcess.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.core;
-
-import java.io.InputStream;
-import java.io.OutputStream;
-
-/**
- * Abstraction of a process running on a remote system. Remote process are created using the {@link IRemoteProcessBuilder}
- * interface.
- */
-public interface IRemoteProcess {
-	/**
-	 * Terminate the process
-	 */
-	public void destroy();
-
-	/**
-	 * Returns the exit value for the process
-	 * 
-	 * @return the exit value
-	 */
-	public int exitValue();
-
-	/**
-	 * Gets the error output stream of the process
-	 * 
-	 * @return the output stream connected to the standard
-	 *         error of the process
-	 */
-	public InputStream getErrorStream();
-
-	/**
-	 * Gets an InputStream which can be used to read the standard output stream of the process
-	 * 
-	 * @return the input stream connected to the standard
-	 *         output of the process
-	 */
-	public InputStream getInputStream();
-
-	/**
-	 * Gets an output stream which can be used to write to the standard input stream of the process
-	 * 
-	 * @return the output stream connected to the standard
-	 *         input of the process
-	 */
-	public OutputStream getOutputStream();
-
-	/**
-	 * Wait until the process has terminated
-	 * 
-	 * @return the exit value of the process
-	 * @throws InterruptedException
-	 *             if the current thread is
-	 *             interrupted by another thread while it is waiting
-	 */
-	public int waitFor() throws InterruptedException;
-
-	/**
-	 * Check if the remote process has completed
-	 * 
-	 * @return true if remote process has completed
-	 */
-	public boolean isCompleted();
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteProcessBuilder.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteProcessBuilder.java
deleted file mode 100644
index 37dd292..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteProcessBuilder.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.core;
-
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.filesystem.IFileStore;
-
-/**
- * Abstraction of a process builder for remote processes. This interface behaves in the same manner as
- * {@link java.lang.ProcessBuilder}.
- */
-public interface IRemoteProcessBuilder {
-	/**
-	 * @since 5.0
-	 */
-	public static int NONE = 0x00;
-
-	/**
-	 * Flag to request allocation of a pseudo-terminal for the process (RFC-4254
-	 * Sec. 6.2)
-	 * 
-	 * @since 5.0
-	 */
-	public static int ALLOCATE_PTY = 0x01;
-
-	/**
-	 * Flag to request X11 forwarding (RFC-4254 Sec. 6.3)
-	 * 
-	 * @since 5.0
-	 */
-	public static int FORWARD_X11 = 0x02;
-
-	/**
-	 * Returns this process builder's operating system program and arguments.
-	 * 
-	 * @return a list containing the program and arguments
-	 */
-	public List<String> command();
-
-	/**
-	 * Sets this process builder's operating system program and arguments.
-	 * 
-	 * @param command
-	 * @return This process builder
-	 */
-	public IRemoteProcessBuilder command(List<String> command);
-
-	/**
-	 * Sets this process builder's operating system program and arguments.
-	 * 
-	 * @param command
-	 * @return this process builder
-	 */
-	public IRemoteProcessBuilder command(String... command);
-
-	/**
-	 * Returns this process builder's connection.
-	 * 
-	 * @return the connection used by this process builder
-	 */
-	public IRemoteConnection connection();
-
-	/**
-	 * Sets this process builder's connection.
-	 * 
-	 * @return This process builder
-	 */
-	public IRemoteProcessBuilder connection(IRemoteConnection conn);
-
-	/**
-	 * Returns this process builder's working directory.
-	 * 
-	 * @return an IFileStore reference to the working directory
-	 */
-	public IFileStore directory();
-
-	/**
-	 * Sets this process builder's working directory.
-	 * 
-	 * @param directory
-	 * @return This process builder
-	 */
-	public IRemoteProcessBuilder directory(IFileStore directory);
-
-	/**
-	 * Returns a string map view of this process builder's environment. The
-	 * returned map behaves in the same manner as described in {@link java.lang.ProcessBuilder#environment()}.
-	 * 
-	 * @return the process builder's environment
-	 */
-	public Map<String, String> environment();
-
-	/**
-	 * Get the flags that are supported by this process builder.
-	 * 
-	 * @return bitwise-or of the supported flags
-	 * @since 5.0
-	 */
-	public int getSupportedFlags();
-
-	/**
-	 * Tells whether this process builder merges standard error and standard
-	 * output.
-	 * 
-	 * @return true if standard error and standard output will be merged
-	 */
-	public boolean redirectErrorStream();
-
-	/**
-	 * Sets this process builder's redirectErrorStream property.
-	 * 
-	 * @param redirectErrorStream
-	 * @return This process builder
-	 */
-	public IRemoteProcessBuilder redirectErrorStream(boolean redirectErrorStream);
-
-	/**
-	 * Starts a new process using the attributes of this process builder.
-	 * 
-	 * @return remote process object
-	 * @throws IOException
-	 */
-	public IRemoteProcess start() throws IOException;
-
-	/**
-	 * Starts a new process using the attributes of this process builder. The
-	 * flags may be used to modify behavior of the remote process. These flags
-	 * may only be supported by specific types of remote service providers.
-	 * Clients can use {@link #getSupportedFlags()} to find out the flags
-	 * supported by the service provider.
-	 * 
-	 * <pre>
-	 * Current flags are:
-	 *   NONE			- disable any flags
-	 *   ALLOCATE_PTY	- allocate a pseudo-terminal for the process (RFC-4254 Sec. 6.2)
-	 *   FORWARD_X11	- enable X11 forwarding (RFC-4254 Sec. 6.3)
-	 * </pre>
-	 * 
-	 * @param flags
-	 *            bitwise-or of flags to use when starting process
-	 * @return remote process object
-	 * @throws IOException
-	 * @since 5.0
-	 */
-	public IRemoteProcess start(int flags) throws IOException;
-}
\ No newline at end of file
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteResource.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteResource.java
deleted file mode 100644
index 375e3b3..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteResource.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 IBM Corporation.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.core;
-
-import java.net.URI;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * Abstraction of a remote resource. There are currently two types of remote resources: fully remote and synchronized. This
- * interface provides a common mechanism for accessing resource information from either type.
- * 
- * Usage:
- * 
- * <code>
- * 	IRemoteResource remoteRes = (IRemoteResource)resource.getAdapter(IRemoteResource.class);
- * 	if (remoteRes != null) {
- * 		URI location = remoteRes.getDefaultLocationURI();
- * 		...
- * 	}
- * </code>
- * 
- * @author greg
- * @since 6.0
- * 
- */
-public interface IRemoteResource {
-	/**
-	 * Get the active location URI of the resource in the remote project. Returns null if the URI can't be obtained (@see
-	 * {@link IResource#getLocationURI()}).
-	 * 
-	 * For fully remote projects, this is just the URI of the remote resource. For synchronized projects, this is the URI of the
-	 * resource from the active synchronization target.
-	 * 
-	 * @return URI or null if URI can't be obtained
-	 */
-	public URI getActiveLocationURI();
-
-	/**
-	 * Get the platform resource corresponding to the remote resource
-	 * 
-	 * @return IResource
-	 */
-	public IResource getResource();
-
-	/**
-	 * Synchronize the resource with the underlying filesystem. Performs a refresh for local and remote projects, but causes
-	 * synchronized projects to attempt to synchronize with their remote files. May synchronize more than just the single resource.
-	 * Blocks until the refresh has completed, so callers should use a job if necessary.
-	 * 
-	 * @param monitor
-	 *            progress monitor to cancel refresh
-	 * @throws CoreException
-	 *             if the underlying synchronization fails
-	 */
-	public void refresh(IProgressMonitor monitor) throws CoreException;
-
-	/**
-	 * Set the platform resource
-	 * 
-	 * @param resource
-	 *            platform resource corresponding to this remote resource
-	 */
-	public void setResource(IResource resource);
-}
\ No newline at end of file
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteServices.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteServices.java
deleted file mode 100644
index 546ab67..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteServices.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.core;
-
-import java.io.IOException;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * Abstraction of a remote services provider. Clients obtain this interface using one of the static methods in
- * {@link RemoteServices}. The methods on this interface can then be used to access the full range of remote services provided.
- */
-public interface IRemoteServices extends IRemoteServicesDescriptor {
-	/**
-	 * Get a connection manager for managing remote connections.
-	 * 
-	 * @return connection manager or null if services are not initialized
-	 */
-	public IRemoteConnectionManager getConnectionManager();
-
-	/**
-	 * Get a file manager for managing remote files
-	 * 
-	 * @param conn
-	 *            connection to use for managing files
-	 * @return file manager or null if services are not initialized
-	 */
-	public IRemoteFileManager getFileManager(IRemoteConnection conn);
-
-	/**
-	 * Get a process builder for creating remote processes
-	 * 
-	 * @param conn
-	 *            connection to use for creating remote processes
-	 * @return process builder or null if services are not initialized
-	 */
-	public IRemoteProcessBuilder getProcessBuilder(IRemoteConnection conn, List<String> command);
-
-	/**
-	 * Get a process builder for creating remote processes
-	 * 
-	 * @param conn
-	 *            connection to use for creating remote processes
-	 * @return process builder or null if services are not initialized
-	 */
-	public IRemoteProcessBuilder getProcessBuilder(IRemoteConnection conn, String... command);
-
-	/**
-	 * Get a remote process that runs a command shell on the remote system. The shell will be the user's default shell on the remote
-	 * system. The flags may be used to modify behavior of the remote process. These flags may only be supported by specific types
-	 * of remote service providers. Clients can use {@link IRemoteProcessBuilder#getSupportedFlags()} to find out the flags
-	 * supported by the service provider.
-	 * 
-	 * <pre>
-	 * Current flags are:
-	 *   {@link IRemoteProcessBuilder#NONE}			- disable any flags
-	 *   {@link IRemoteProcessBuilder#ALLOCATE_PTY}	- allocate a pseudo-terminal for the process (RFC-4254 Sec. 6.2)
-	 *   {@link IRemoteProcessBuilder#FORWARD_X11}	- enable X11 forwarding (RFC-4254 Sec. 6.3)
-	 * </pre>
-	 * 
-	 * @param conn
-	 *            connection used for creating the remote process
-	 * @param flags
-	 *            bitwise-or of flags
-	 * @return remote process object
-	 * @throws IOException
-	 * @since 7.0
-	 */
-	public IRemoteProcess getCommandShell(IRemoteConnection conn, int flags) throws IOException;
-
-	/**
-	 * Initialize the remote service. Clients should not call this method (it is called internally.)
-	 * 
-	 * @return true if the initialization was successful, false otherwise
-	 * @since 7.0
-	 */
-	public boolean initialize(IProgressMonitor monitor);
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteServicesDescriptor.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteServicesDescriptor.java
deleted file mode 100644
index 58beff8..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteServicesDescriptor.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.core;
-
-/**
- * Interface representing a remote services provider extension. Clients can use this to find out information about the extension
- * without loading it.
- */
-public interface IRemoteServicesDescriptor {
-	/**
-	 * Test if this provider can create connections.
-	 * 
-	 * @return true if new connections can be created
-	 * @since 5.0
-	 */
-	public boolean canCreateConnections();
-
-	/**
-	 * Get unique ID of this service. Can be used as a lookup key.
-	 * 
-	 * @return unique ID
-	 */
-	public String getId();
-
-	/**
-	 * Get display name of this service.
-	 * 
-	 * @return display name
-	 */
-	public String getName();
-
-	/**
-	 * Get the EFS scheme provided by this service.
-	 * 
-	 * @return display name
-	 */
-	public String getScheme();
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteServicesFactory.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteServicesFactory.java
deleted file mode 100644
index 340ab68..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IRemoteServicesFactory.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.core;
-
-/**
- * Factory for creating instances of a remote service provider. Implementors must provide a class implementing this interface when
- * supplying a new remote services provider extension.
- */
-public interface IRemoteServicesFactory {
-	/**
-	 * Return the remote services implementation for the given descriptor
-	 * 
-	 * @param descriptor
-	 *            descriptor for the remote services
-	 * @return the remote services implementation, or null if initialization failed
-	 */
-	public IRemoteServices getServices(IRemoteServicesDescriptor descriptor);
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IUserAuthenticator.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IUserAuthenticator.java
deleted file mode 100644
index 09d49be..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/IUserAuthenticator.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007, 2013 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Atsuhiko Yamanaka, JCraft,Inc. - adding promptForKeyboradInteractive method
- *                                    - copying this class from cvs.core plug-in.
- *     Greg Watson, IBM - modified for use with PTP
- *******************************************************************************/
-package org.eclipse.ptp.remote.core;
-
-import java.net.PasswordAuthentication;
-
-/**
- * Allow clients to provide their own user interface for connection authentication.
- * 
- * @since 7.0
- */
-public interface IUserAuthenticator {
-
-	/**
-	 * ID for an "Ok" response (value 0).
-	 */
-	public final static int OK = 0;
-
-	/**
-	 * ID for a "Cancel" response (value 1).
-	 */
-	public final static int CANCEL = 1;
-
-	/**
-	 * ID for a "Yes" response (value 2).
-	 */
-	public final static int YES = 2;
-
-	/**
-	 * ID for a "No" response (value 3).
-	 */
-	public final static int NO = 3;
-
-	/**
-	 * Constant for a prompt with no type (value 0).
-	 */
-	public final static int NONE = 0;
-
-	/**
-	 * Constant for an error prompt (value 1).
-	 */
-	public final static int ERROR = 1;
-
-	/**
-	 * Constant for an information prompt (value 2).
-	 */
-	public final static int INFORMATION = 2;
-
-	/**
-	 * Constant for a question prompt (value 3).
-	 */
-	public final static int QUESTION = 3;
-
-	/**
-	 * Constant for a warning dialog (value 4).
-	 */
-	public final static int WARNING = 4;
-
-	/**
-	 * Authenticates the user for access.
-	 * The obtained values for user name and password will be placed
-	 * into returned object. Implementors are allowed to
-	 * save user names and passwords. The user should be prompted for
-	 * user name and password if there is no saved one.
-	 * 
-	 * @param username
-	 *            The initial username, or null if there is no initial username
-	 * @param message
-	 *            An optional message to display if, e.g., previous authentication failed.
-	 */
-	public PasswordAuthentication prompt(String username, String message);
-
-	/**
-	 * Prompts the user for a number values using text fields. The labels are provided in
-	 * the <core>prompt</code> array. Implementors will return the entered values, or null if
-	 * the user cancels the prompt.
-	 * 
-	 * @param destination
-	 *            the destination in the format like username@hostname:port
-	 * @param name
-	 *            a name for this dialog
-	 * @param message
-	 *            the message to be displayed to the user
-	 * @param prompt
-	 *            labels for each of the text fields.
-	 * @param echo
-	 *            an array to show which fields are secret
-	 * @return the entered values, or null if the user canceled.
-	 */
-	public String[] prompt(String destination, String name, String message, String[] prompt, boolean[] echo);
-
-	/**
-	 * Prompts for additional information regarding this authentication
-	 * request. A default implementation of this method should return the <code>defaultResponse</code>,
-	 * whereas alternate implementations could prompt the user with a dialog.
-	 * 
-	 * @param promptType
-	 *            one of the following values:
-	 *            <ul>
-	 *            <li> <code>NONE</code> for a unspecified prompt type</li>
-	 *            <li> <code>ERROR</code> for an error prompt</li>
-	 *            <li> <code>INFORMATION</code> for an information prompt</li>
-	 *            <li> <code>QUESTION </code> for a question prompt</li>
-	 *            <li> <code>WARNING</code> for a warning prompt</li>
-	 *            </ul>
-	 * @param title
-	 *            the prompt title that could be displayed to the user
-	 * @param message
-	 *            the message to display to the user
-	 * @param promptResponses
-	 *            the possible responses to the prompt (e.g. corresponding to buttons on a dialog)
-	 * @param defaultResponseIndex
-	 *            the default response to the prompt
-	 * @return the response to the prompt
-	 */
-	public int prompt(int promptType, String title, String message, int[] promptResponses, int defaultResponseIndex);
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/RemoteProcessAdapter.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/RemoteProcessAdapter.java
deleted file mode 100644
index 811dba7..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/RemoteProcessAdapter.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.core;
-
-import java.io.InputStream;
-import java.io.OutputStream;
-
-/**
- * Utility class to adapt an IRemoteProcess to a java.lang.Process
- * 
- * @author crecoskie
- * 
- */
-public class RemoteProcessAdapter extends Process {
-
-	private final IRemoteProcess fProcess;
-
-	public RemoteProcessAdapter(IRemoteProcess process) {
-		fProcess = process;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Process#destroy()
-	 */
-	@Override
-	public void destroy() {
-		fProcess.destroy();
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Process#exitValue()
-	 */
-	@Override
-	public int exitValue() {
-		return fProcess.exitValue();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Process#getErrorStream()
-	 */
-	@Override
-	public InputStream getErrorStream() {
-		return fProcess.getErrorStream();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Process#getInputStream()
-	 */
-	@Override
-	public InputStream getInputStream() {
-		return fProcess.getInputStream();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Process#getOutputStream()
-	 */
-	@Override
-	public OutputStream getOutputStream() {
-		return fProcess.getOutputStream();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Process#waitFor()
-	 */
-	@Override
-	public int waitFor() throws InterruptedException {
-		return fProcess.waitFor();
-	}
-
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/RemoteServices.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/RemoteServices.java
deleted file mode 100644
index 737d4fa..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/RemoteServices.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.core;
-
-import java.net.URI;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.ptp.internal.remote.core.RemoteServicesImpl;
-import org.eclipse.ptp.internal.remote.core.RemoteServicesProxy;
-import org.eclipse.ptp.internal.remote.core.services.local.LocalServices;
-
-/**
- * Main entry point for accessing remote services.
- * 
- * @since 7.0
- */
-public class RemoteServices {
-	// Local services
-	private static IRemoteServices fLocalServices;
-
-	/**
-	 * Retrieve the local services provider. Guaranteed to exist and be initialized.
-	 * 
-	 * @return local services provider
-	 */
-	public static IRemoteServices getLocalServices() {
-		if (fLocalServices == null) {
-			fLocalServices = getRemoteServices(LocalServices.LocalServicesId);
-		}
-		return fLocalServices;
-	}
-
-	/**
-	 * Get the remote service implementation identified by id and ensure that it is initialized.
-	 * 
-	 * @param id
-	 *            id of the remote service
-	 * @return remote service or null if the service cannot be found or failed to initialized
-	 */
-	public static IRemoteServices getRemoteServices(String id) {
-		return getRemoteServices(id, null);
-	}
-
-	/**
-	 * Get the remote service implementation identified by id and ensure that it is initialized. This method will present the user
-	 * with a dialog box that can be canceled.
-	 * 
-	 * @param id
-	 *            id of remote service to retrieve
-	 * @param monitor
-	 *            progress monitor to allow user to cancel operation
-	 * @return remote service, or null if the service cannot be found or failed to initialized
-	 * @since 5.0
-	 */
-	public static IRemoteServices getRemoteServices(String id, IProgressMonitor monitor) {
-		RemoteServicesProxy proxy = RemoteServicesImpl.getRemoteServiceProxyById(id);
-		if (proxy != null) {
-			IRemoteServices service = proxy.getServices();
-			if (service.initialize(monitor)) {
-				return service;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Get the remote services identified by a URI.
-	 * 
-	 * @param uri
-	 *            URI of remote services to retrieve
-	 * @return remote service, or null if the service cannot be found or failed to initialized
-	 */
-	public static IRemoteServices getRemoteServices(URI uri) {
-		return getRemoteServices(uri, null);
-	}
-
-	/**
-	 * Get the remote services implementation identified by URI. This method will present the user
-	 * with a dialog box that can be canceled.
-	 * 
-	 * @param uri
-	 *            URI of remote services to retrieve
-	 * @param monitor
-	 *            progress monitor to allow user to cancel operation
-	 * @return remote service, or null if the service cannot be found or failed to initialized
-	 * @since 5.0
-	 */
-	public static IRemoteServices getRemoteServices(URI uri, IProgressMonitor monitor) {
-		RemoteServicesProxy proxy = RemoteServicesImpl.getRemoteServiceProxyByURI(uri);
-		if (proxy != null) {
-			IRemoteServices service = proxy.getServices();
-			if (service.initialize(monitor)) {
-				return service;
-			}
-		}
-		return null;
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/RemoteServicesUtils.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/RemoteServicesUtils.java
deleted file mode 100644
index 536a48c..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/RemoteServicesUtils.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.core;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-
-import org.eclipse.core.filesystem.IFileStore;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.SubMonitor;
-import org.eclipse.ptp.internal.remote.core.PTPRemoteCorePlugin;
-import org.eclipse.ptp.internal.remote.core.RemoteServicesImpl;
-import org.eclipse.ptp.internal.remote.core.RemoteServicesProxy;
-import org.eclipse.ptp.internal.remote.core.preferences.Preferences;
-
-/**
- * Remote services utility methods.
- * 
- * @since 7.0
- */
-public class RemoteServicesUtils {
-	/**
-	 * Utility method to get a remote connection given a remote services ID and a connection name.
-	 * 
-	 * @param remoteServicesId
-	 *            ID of remote services providing the connection
-	 * @param connectionName
-	 *            name of the connection to find
-	 * @param monitor
-	 *            progress monitor
-	 * @return remote connection or null if the ID or connection name are invalid
-	 */
-	public static IRemoteConnection getConnectionWithProgress(String remoteServicesId, String connectionName,
-			IProgressMonitor monitor) {
-		SubMonitor progress = SubMonitor.convert(monitor, 10);
-		IRemoteServices remoteServices = RemoteServices.getRemoteServices(remoteServicesId, progress.newChild(1));
-		if (remoteServices != null) {
-			IRemoteConnectionManager remoteConnectionManager = remoteServices.getConnectionManager();
-			if (remoteConnectionManager != null) {
-				return remoteConnectionManager.getConnection(connectionName);
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Utility method to get a file store corresponding to the given path.
-	 * 
-	 * @param remoteServicesId
-	 *            ID of remote services providing the connection
-	 * @param connectionName
-	 *            name of the remote connection to use
-	 * @param path
-	 *            path of file on remote system
-	 * @param monitor
-	 *            progress monitor
-	 * @return file store corresponding to the remote file or null if the ID or connection name are invalid
-	 */
-	public static IFileStore getRemoteFileWithProgress(String remoteServicesId, String connectionName, String path,
-			IProgressMonitor monitor) {
-		SubMonitor progress = SubMonitor.convert(monitor, 10);
-		IRemoteServices remoteServices = RemoteServices.getRemoteServices(remoteServicesId, progress.newChild(10));
-		if (remoteServices != null) {
-			IRemoteConnectionManager remoteConnectionManager = remoteServices.getConnectionManager();
-			if (remoteConnectionManager != null) {
-				IRemoteConnection remoteConnection = remoteConnectionManager.getConnection(connectionName);
-				if (remoteConnection != null) {
-					IRemoteFileManager remoteFileManager = remoteServices.getFileManager(remoteConnection);
-					if (remoteFileManager != null) {
-						return remoteFileManager.getResource(path);
-					}
-				}
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Convert a UNC path to a URI
-	 * 
-	 * Maps the UNC server component to a connection known by one of the remote service implementations. It is assumed that the
-	 * server component is of the form "[service_id:]connection_name". If the "service_id:" part is omitted then the current
-	 * remote services preference is used by default. If no preference is set, then each implementation is tried until
-	 * a matching connection name is found.
-	 * 
-	 * @param path
-	 *            UNC path
-	 * @return corresponding URI or null if not a valid path
-	 */
-	public static URI toURI(IPath path) {
-		if (path.isUNC()) {
-			/*
-			 * Split the server component if possible.
-			 */
-			String[] parts = path.segment(0).split(":"); //$NON-NLS-1$
-			IRemoteServices services = null;
-			String connName = null;
-			if (parts.length == 2) {
-				services = RemoteServices.getRemoteServices(parts[0]);
-				connName = parts[1];
-			} else if (parts.length == 1) {
-				String id = Preferences.getString(PTPRemoteCorePlugin.getUniqueIdentifier(),
-						IRemotePreferenceConstants.PREF_REMOTE_SERVICES_ID);
-				if (id != null) {
-					services = RemoteServices.getRemoteServices(id);
-				}
-				connName = parts[0];
-			}
-
-			/*
-			 * If we've found the remote services then look up the connection, otherwise iterate through all available services
-			 * checking for the connection name.
-			 */
-			IRemoteConnection conn = null;
-			if (services != null) {
-				conn = services.getConnectionManager().getConnection(connName);
-			} else if (connName != null) {
-				for (RemoteServicesProxy proxy : RemoteServicesImpl.getRemoteServiceProxies()) {
-					conn = proxy.getServices().getConnectionManager().getConnection(connName);
-					if (conn != null) {
-						break;
-					}
-				}
-			}
-
-			/*
-			 * If a connection was found then convert it to a URI.
-			 */
-			if (conn != null) {
-				String scheme = conn.getRemoteServices().getScheme();
-				String filePath = path.removeFirstSegments(1).makeAbsolute().toString();
-				try {
-					return new URI(scheme, connName, filePath, null);
-				} catch (URISyntaxException e) {
-					// Ignore
-				}
-			}
-		}
-		return null;
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/exception/AddressInUseException.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/exception/AddressInUseException.java
deleted file mode 100644
index 0d07600..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/exception/AddressInUseException.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ptp.remote.core.exception;
-
-/**
- * Exception thrown when a connection address is already in use.
- * 
- */
-public class AddressInUseException extends RemoteConnectionException {
-	private static final long serialVersionUID = 1771839754428411610L;
-
-	/**
-	 * @param message
-	 * @param cause
-	 */
-	public AddressInUseException(String message, Throwable cause) {
-		super(message, cause);
-	}
-
-	/**
-	 * @param message
-	 */
-	public AddressInUseException(String message) {
-		super(message);
-	}
-
-	/**
-	 * @param cause
-	 */
-	public AddressInUseException(Throwable cause) {
-		super(cause);
-	}
-
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/exception/PrivilegedPortException.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/exception/PrivilegedPortException.java
deleted file mode 100644
index e008dd4..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/exception/PrivilegedPortException.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ptp.remote.core.exception;
-
-/**
- * Exception thrown when an attempt is made to use a privileged port.
- */
-public class PrivilegedPortException extends RemoteConnectionException {
-	private static final long serialVersionUID = -7794871221470179956L;
-
-	/**
-	 * @param message
-	 * @param cause
-	 */
-	public PrivilegedPortException(String message, Throwable cause) {
-		super(message, cause);
-	}
-
-	/**
-	 * @param message
-	 */
-	public PrivilegedPortException(String message) {
-		super(message);
-	}
-
-	/**
-	 * @param cause
-	 */
-	public PrivilegedPortException(Throwable cause) {
-		super(cause);
-	}
-
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/exception/RemoteConnectionException.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/exception/RemoteConnectionException.java
deleted file mode 100644
index ea35fc8..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/exception/RemoteConnectionException.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ptp.remote.core.exception;
-
-/**
- * Exception thrown when a remote connection error occurs.
- */
-public class RemoteConnectionException extends Exception {
-	private static final long serialVersionUID = -7794871221470179956L;
-
-	/**
-	 * @param message
-	 * @param cause
-	 */
-	public RemoteConnectionException(String message, Throwable cause) {
-		super(message, cause);
-	}
-
-	/**
-	 * @param message
-	 */
-	public RemoteConnectionException(String message) {
-		super(message);
-	}
-
-	/**
-	 * @param cause
-	 */
-	public RemoteConnectionException(Throwable cause) {
-		super(cause);
-	}
-
-}
diff --git a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/exception/UnableToForwardPortException.java b/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/exception/UnableToForwardPortException.java
deleted file mode 100644
index d4526d9..0000000
--- a/core/org.eclipse.ptp.remote.core/src/org/eclipse/ptp/remote/core/exception/UnableToForwardPortException.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ptp.remote.core.exception;
-
-/**
- * Exception thrown when a port is unable to be forwarded.
- */
-public class UnableToForwardPortException extends RemoteConnectionException {
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -5814772755700213717L;
-
-	/**
-	 * @param message
-	 * @param cause
-	 */
-	public UnableToForwardPortException(String message, Throwable cause) {
-		super(message, cause);
-	}
-
-	/**
-	 * @param message
-	 */
-	public UnableToForwardPortException(String message) {
-		super(message);
-	}
-
-	/**
-	 * @param cause
-	 */
-	public UnableToForwardPortException(Throwable cause) {
-		super(cause);
-	}
-
-}
diff --git a/core/org.eclipse.ptp.remote.remotetools.core/META-INF/MANIFEST.MF b/core/org.eclipse.ptp.remote.remotetools.core/META-INF/MANIFEST.MF
index 423f540..e9868d8 100644
--- a/core/org.eclipse.ptp.remote.remotetools.core/META-INF/MANIFEST.MF
+++ b/core/org.eclipse.ptp.remote.remotetools.core/META-INF/MANIFEST.MF
@@ -7,9 +7,10 @@
 Bundle-Vendor: %pluginProvider
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.core.filesystem,
- org.eclipse.ptp.remote.core,
+ org.eclipse.remote.core,
  org.eclipse.ptp.remotetools.core,
  org.eclipse.ptp.remotetools.environment.core,
+ org.eclipse.ptp.remotetools.environment.generichost,
  org.eclipse.cdt.core
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.ptp.internal.remote.remotetools.core;x-friends:="org.eclipse.ptp.remote.remotetools.ui",
diff --git a/core/org.eclipse.ptp.remote.remotetools.core/plugin.xml b/core/org.eclipse.ptp.remote.remotetools.core/plugin.xml
index 2508d29..3031435 100644
--- a/core/org.eclipse.ptp.remote.remotetools.core/plugin.xml
+++ b/core/org.eclipse.ptp.remote.remotetools.core/plugin.xml
@@ -2,12 +2,11 @@
 <?eclipse version="3.2"?>
 <plugin>
    <extension
-         point="org.eclipse.ptp.remote.core.remoteServices">
+         point="org.eclipse.remote.core.remoteServices">
       <remoteServices
             class="org.eclipse.ptp.internal.remote.remotetools.core.RemoteToolsServicesFactory"
             id="org.eclipse.ptp.remote.RemoteTools"
             name="Remote Tools"
-            newConnections="true"
             scheme="remotetools">
       </remoteServices>
    </extension>
diff --git a/core/org.eclipse.ptp.remote.remotetools.core/pom.xml b/core/org.eclipse.ptp.remote.remotetools.core/pom.xml
index 89354f3..d427b14 100644
--- a/core/org.eclipse.ptp.remote.remotetools.core/pom.xml
+++ b/core/org.eclipse.ptp.remote.remotetools.core/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/AuthInfo.java b/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/AuthInfo.java
index 36d253c..f6e1d02 100644
--- a/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/AuthInfo.java
+++ b/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/AuthInfo.java
@@ -14,8 +14,8 @@
 import java.net.PasswordAuthentication;
 
 import org.eclipse.ptp.internal.remote.remotetools.core.messages.Messages;
-import org.eclipse.ptp.remote.core.IUserAuthenticator;
 import org.eclipse.ptp.remotetools.core.IAuthInfo;
+import org.eclipse.remote.core.IUserAuthenticator;
 
 /**
  * Provides feedback to user for connection authentication
diff --git a/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsConnection.java b/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsConnection.java
index 7f798ec..7dd5e0a 100644
--- a/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsConnection.java
+++ b/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsConnection.java
@@ -1,5 +1,4 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,8 +9,10 @@
  *******************************************************************************/
 package org.eclipse.ptp.internal.remote.remotetools.core;
 
+import java.io.IOException;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import org.eclipse.core.runtime.CoreException;
@@ -20,14 +21,6 @@
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.SubMonitor;
 import org.eclipse.ptp.internal.remote.remotetools.core.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionChangeEvent;
-import org.eclipse.ptp.remote.core.IRemoteConnectionChangeListener;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.IUserAuthenticator;
-import org.eclipse.ptp.remote.core.exception.AddressInUseException;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
-import org.eclipse.ptp.remote.core.exception.UnableToForwardPortException;
 import org.eclipse.ptp.remotetools.core.IRemoteExecutionManager;
 import org.eclipse.ptp.remotetools.core.IRemotePortForwarding;
 import org.eclipse.ptp.remotetools.core.IRemoteTunnel;
@@ -37,10 +30,23 @@
 import org.eclipse.ptp.remotetools.environment.core.ITargetElement;
 import org.eclipse.ptp.remotetools.environment.core.ITargetElementStatus;
 import org.eclipse.ptp.remotetools.environment.core.ITargetEventListener;
+import org.eclipse.ptp.remotetools.environment.core.TargetElement;
 import org.eclipse.ptp.remotetools.environment.core.TargetEnvironmentManager;
 import org.eclipse.ptp.remotetools.exception.CancelException;
 import org.eclipse.ptp.remotetools.exception.LocalPortBoundException;
 import org.eclipse.ptp.remotetools.exception.PortForwardingException;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnectionChangeEvent;
+import org.eclipse.remote.core.IRemoteConnectionChangeListener;
+import org.eclipse.remote.core.IRemoteConnectionWorkingCopy;
+import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteProcess;
+import org.eclipse.remote.core.IRemoteProcessBuilder;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.IUserAuthenticator;
+import org.eclipse.remote.core.exception.AddressInUseException;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
+import org.eclipse.remote.core.exception.UnableToForwardPortException;
 
 /**
  * @since 5.0
@@ -53,8 +59,9 @@
 
 	private final String fConnName;
 	private final IRemoteServices fRemoteServices;
-	private final ITargetElement fTargetElement;
+	private final TargetElement fTargetElement;
 	private final ITargetControl fTargetControl;
+	private final RemoteToolsFileManager fFileManager = new RemoteToolsFileManager(this);
 	private final ListenerList fListeners = new ListenerList();
 
 	private final ITargetEventListener fTargetEventListener = new ITargetEventListener() {
@@ -68,9 +75,15 @@
 	/**
 	 * @since 5.0
 	 */
-	public RemoteToolsConnection(String name, ITargetElement element, IRemoteServices services) throws CoreException {
+	public RemoteToolsConnection(String name, TargetElement element, IRemoteServices services) {
 		fTargetElement = element;
-		fTargetControl = element.getControl();
+		try {
+			fTargetControl = element.getControl();
+		} catch (CoreException e) {
+			// Should not happen, but we are in a bad state if it does
+			RemoteToolsAdapterCorePlugin.log(e);
+			throw new RuntimeException(e.getMessage());
+		}
 		fConnName = name;
 		fRemoteServices = services;
 		TargetEnvironmentManager targetMgr = EnvironmentPlugin.getDefault().getTargetsManager();
@@ -103,6 +116,15 @@
 		}
 	}
 
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Comparable#compareTo(java.lang.Object)
+	 */
+	public int compareTo(IRemoteConnection o) {
+		return getName().compareTo(o.getName());
+	}
+
 	/**
 	 * Create a new execution manager. Required because script execution closes channel after execution.
 	 * 
@@ -125,14 +147,24 @@
 	}
 
 	/**
+	 * Actions to perform when connection closes
+	 */
+	private void doClose() {
+		/*
+		 * Force refresh of working directory when connection is closed. See bug 383033.
+		 */
+		fWorkingDir = null;
+	}
+
+	/**
 	 * Notify all fListeners when this connection's status changes.
 	 * 
 	 * @param event
 	 */
-	public void fireConnectionChangeEvent(final IRemoteConnection connection, final int type) {
+	public void fireConnectionChangeEvent(final int type) {
 		IRemoteConnectionChangeEvent event = new IRemoteConnectionChangeEvent() {
 			public IRemoteConnection getConnection() {
-				return connection;
+				return RemoteToolsConnection.this;
 			}
 
 			public int getType() {
@@ -278,6 +310,15 @@
 	/*
 	 * (non-Javadoc)
 	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnection#getCommandShell(int)
+	 */
+	public IRemoteProcess getCommandShell(int flags) throws IOException {
+		throw new IOException("Not currently implemented"); //$NON-NLS-1$
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#getEnv()
 	 */
 	public Map<String, String> getEnv() {
@@ -321,6 +362,15 @@
 	/*
 	 * (non-Javadoc)
 	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnection#getFileManager()
+	 */
+	public IRemoteFileManager getFileManager() {
+		return fFileManager;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#getName()
 	 */
 	public String getName() {
@@ -339,6 +389,24 @@
 	/*
 	 * (non-Javadoc)
 	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnection#getProcessBuilder(java.util.List)
+	 */
+	public IRemoteProcessBuilder getProcessBuilder(List<String> command) {
+		return new RemoteToolsProcessBuilder(this, fFileManager, command);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnection#getProcessBuilder(java.lang.String[])
+	 */
+	public IRemoteProcessBuilder getProcessBuilder(String... command) {
+		return new RemoteToolsProcessBuilder(this, fFileManager, command);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#getProperty(java.lang.String )
 	 */
 	public String getProperty(String key) {
@@ -346,6 +414,28 @@
 		return fProperties.get(key);
 	}
 
+	/**
+	 * Get the result of executing a pwd command.
+	 * 
+	 * @return current working directory
+	 */
+	private String getPwd() {
+		IRemoteExecutionManager exeMgr = null;
+		try {
+			exeMgr = createExecutionManager();
+		} catch (org.eclipse.ptp.remotetools.exception.RemoteConnectionException e) {
+			// Ignore
+		}
+		if (exeMgr != null) {
+			try {
+				return exeMgr.getExecutionTools().executeWithOutput("pwd").trim(); //$NON-NLS-1$
+			} catch (Exception e) {
+				// Ignore
+			}
+		}
+		return null;
+	}
+
 	/*
 	 * (non-Javadoc)
 	 * 
@@ -358,6 +448,14 @@
 		return fRemoteServices;
 	}
 
+	public ITargetControl getTargetControl() {
+		return fTargetControl;
+	}
+
+	public TargetElement getTargetElement() {
+		return fTargetElement;
+	}
+
 	/*
 	 * (non-Javadoc)
 	 * 
@@ -370,6 +468,15 @@
 	/*
 	 * (non-Javadoc)
 	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnection#getWorkingCopy()
+	 */
+	public IRemoteConnectionWorkingCopy getWorkingCopy() {
+		return new RemoteToolsConnectionWorkingCopy(this);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see org.eclipse.ptp.remote.core.IRemoteFileManager#getWorkingDirectory()
 	 */
 	/**
@@ -397,220 +504,6 @@
 		return fTargetControl.query() == ITargetStatus.RESUMED;
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#open()
-	 */
-	public void open(IProgressMonitor monitor) throws RemoteConnectionException {
-		SubMonitor progress = SubMonitor.convert(monitor, 2);
-		if (!isOpen()) {
-			progress.beginTask(Messages.RemoteToolsConnection_open, 2);
-			try {
-				fTargetControl.create(progress.newChild(1));
-			} catch (CoreException e) {
-				throw new RemoteConnectionException(e.getMessage());
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#open(org.eclipse.ptp.remote.core.IUserAuthenticator,
-	 * org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void open(IUserAuthenticator authenticator, IProgressMonitor monitor) throws RemoteConnectionException {
-		SubMonitor progress = SubMonitor.convert(monitor, 2);
-		if (!isOpen()) {
-			progress.beginTask(Messages.RemoteToolsConnection_open, 2);
-			try {
-				fTargetControl.create(progress.newChild(1));
-			} catch (CoreException e) {
-				throw new RemoteConnectionException(e.getMessage());
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#removeConnectionChangeListener
-	 * (org.eclipse.ptp.remote.core.IRemoteConnectionChangeListener)
-	 */
-	public void removeConnectionChangeListener(IRemoteConnectionChangeListener listener) {
-		fListeners.remove(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#removeLocalPortForwarding(int)
-	 */
-	public void removeLocalPortForwarding(int port) throws RemoteConnectionException {
-		if (!isOpen()) {
-			throw new RemoteConnectionException(Messages.RemoteToolsConnection_connectionNotOpen);
-		}
-		Integer portToRemove = Integer.valueOf(port);
-		IRemoteTunnel tunnel = fTunnels.get(portToRemove);
-		if (tunnel != null) {
-			try {
-				fTargetControl.getExecutionManager().releaseTunnel(tunnel);
-				fTunnels.remove(portToRemove);
-			} catch (Exception e) {
-				throw new RemoteConnectionException(e.getMessage());
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#removeRemotePortForwarding(int)
-	 */
-	public void removeRemotePortForwarding(int port) throws RemoteConnectionException {
-		if (!isOpen()) {
-			throw new RemoteConnectionException(Messages.RemoteToolsConnection_connectionNotOpen);
-		}
-		try {
-			IRemotePortForwarding portForwarding = fTargetControl.getExecutionManager().getPortForwardingTools()
-					.getRemotePortForwarding(port);
-			fTargetControl.getExecutionManager().getPortForwardingTools().releaseForwarding(portForwarding);
-		} catch (Exception e) {
-			throw new RemoteConnectionException(e.getMessage());
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#setAddress(java.lang.String )
-	 */
-	public void setAddress(String address) {
-		fTargetControl.getConfig().setConnectionAddress(address);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#setAttribute(java.lang. String, java.lang.String)
-	 */
-	/**
-	 * @since 5.0
-	 */
-	public void setAttribute(String key, String value) {
-		fTargetControl.getConfig().setAttribute(key, value);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#setName(java.lang.String)
-	 */
-	public void setName(String name) {
-		fTargetElement.setName(name);
-		fireConnectionChangeEvent(this, IRemoteConnectionChangeEvent.CONNECTION_RENAMED);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#setPassword(java.lang.String )
-	 */
-	/**
-	 * @since 5.0
-	 */
-	public void setPassword(String password) {
-		fTargetControl.getConfig().setLoginPassword(password);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#setPort(int)
-	 */
-	public void setPort(int port) {
-		fTargetControl.getConfig().setConnectionPort(port);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#setUsername(java.lang.String )
-	 */
-	public void setUsername(String userName) {
-		fTargetControl.getConfig().setLoginUsername(userName);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteFileManager#setWorkingDirectory(java .lang.String)
-	 */
-	/**
-	 * @since 4.0
-	 */
-	public void setWorkingDirectory(String path) {
-		if (new Path(path).isAbsolute()) {
-			fWorkingDir = path;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#supportsTCPPortForwarding()
-	 */
-	public boolean supportsTCPPortForwarding() {
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#toString()
-	 */
-	@Override
-	public String toString() {
-		String str = getName() + " [" + getUsername() + "@" + getAddress(); //$NON-NLS-1$ //$NON-NLS-2$
-		if (getPort() >= 0) {
-			str += ":" + getPort(); //$NON-NLS-1$
-		}
-		return str + "]"; //$NON-NLS-1$
-	}
-
-	/**
-	 * Actions to perform when connection closes
-	 */
-	private void doClose() {
-		/*
-		 * Force refresh of working directory when connection is closed. See bug 383033.
-		 */
-		fWorkingDir = null;
-	}
-
-	/**
-	 * Get the result of executing a pwd command.
-	 * 
-	 * @return current working directory
-	 */
-	private String getPwd() {
-		IRemoteExecutionManager exeMgr = null;
-		try {
-			exeMgr = createExecutionManager();
-		} catch (org.eclipse.ptp.remotetools.exception.RemoteConnectionException e) {
-			// Ignore
-		}
-		if (exeMgr != null) {
-			try {
-				return exeMgr.getExecutionTools().executeWithOutput("pwd").trim(); //$NON-NLS-1$
-			} catch (Exception e) {
-				// Ignore
-			}
-		}
-		return null;
-	}
-
 	/**
 	 * 
 	 * Load the following hard-coded properties at runtime:
@@ -713,4 +606,130 @@
 			}
 		}
 	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#open()
+	 */
+	public void open(IProgressMonitor monitor) throws RemoteConnectionException {
+		SubMonitor progress = SubMonitor.convert(monitor, 2);
+		if (!isOpen()) {
+			progress.beginTask(Messages.RemoteToolsConnection_open, 2);
+			try {
+				fTargetControl.create(progress.newChild(1));
+			} catch (CoreException e) {
+				throw new RemoteConnectionException(e.getMessage());
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#open(org.eclipse.ptp.remote.core.IUserAuthenticator,
+	 * org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	public void open(IUserAuthenticator authenticator, IProgressMonitor monitor) throws RemoteConnectionException {
+		SubMonitor progress = SubMonitor.convert(monitor, 2);
+		if (!isOpen()) {
+			progress.beginTask(Messages.RemoteToolsConnection_open, 2);
+			try {
+				fTargetControl.create(progress.newChild(1));
+			} catch (CoreException e) {
+				throw new RemoteConnectionException(e.getMessage());
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#removeConnectionChangeListener
+	 * (org.eclipse.ptp.remote.core.IRemoteConnectionChangeListener)
+	 */
+	public void removeConnectionChangeListener(IRemoteConnectionChangeListener listener) {
+		fListeners.remove(listener);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#removeLocalPortForwarding(int)
+	 */
+	public void removeLocalPortForwarding(int port) throws RemoteConnectionException {
+		if (!isOpen()) {
+			throw new RemoteConnectionException(Messages.RemoteToolsConnection_connectionNotOpen);
+		}
+		Integer portToRemove = Integer.valueOf(port);
+		IRemoteTunnel tunnel = fTunnels.get(portToRemove);
+		if (tunnel != null) {
+			try {
+				fTargetControl.getExecutionManager().releaseTunnel(tunnel);
+				fTunnels.remove(portToRemove);
+			} catch (Exception e) {
+				throw new RemoteConnectionException(e.getMessage());
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#removeRemotePortForwarding(int)
+	 */
+	public void removeRemotePortForwarding(int port) throws RemoteConnectionException {
+		if (!isOpen()) {
+			throw new RemoteConnectionException(Messages.RemoteToolsConnection_connectionNotOpen);
+		}
+		try {
+			IRemotePortForwarding portForwarding = fTargetControl.getExecutionManager().getPortForwardingTools()
+					.getRemotePortForwarding(port);
+			fTargetControl.getExecutionManager().getPortForwardingTools().releaseForwarding(portForwarding);
+		} catch (Exception e) {
+			throw new RemoteConnectionException(e.getMessage());
+		}
+	}
+
+	public void setName(String name) {
+		fTargetElement.setName(name);
+		fireConnectionChangeEvent(IRemoteConnectionChangeEvent.CONNECTION_RENAMED);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ptp.remote.core.IRemoteFileManager#setWorkingDirectory(java .lang.String)
+	 */
+	/**
+	 * @since 4.0
+	 */
+	public void setWorkingDirectory(String path) {
+		if (new Path(path).isAbsolute()) {
+			fWorkingDir = path;
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#supportsTCPPortForwarding()
+	 */
+	public boolean supportsTCPPortForwarding() {
+		return true;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#toString()
+	 */
+	@Override
+	public String toString() {
+		String str = getName() + " [" + getUsername() + "@" + getAddress(); //$NON-NLS-1$ //$NON-NLS-2$
+		if (getPort() >= 0) {
+			str += ":" + getPort(); //$NON-NLS-1$
+		}
+		return str + "]"; //$NON-NLS-1$
+	}
 }
diff --git a/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsConnectionManager.java b/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsConnectionManager.java
index 67b36e0..a6b01e3 100644
--- a/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsConnectionManager.java
+++ b/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsConnectionManager.java
@@ -11,16 +11,13 @@
 package org.eclipse.ptp.internal.remote.remotetools.core;
 
 import java.net.URI;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
-import org.eclipse.core.runtime.CoreException;
+import org.eclipse.osgi.util.NLS;
 import org.eclipse.ptp.internal.remote.remotetools.core.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionChangeEvent;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
 import org.eclipse.ptp.remotetools.environment.EnvironmentPlugin;
 import org.eclipse.ptp.remotetools.environment.core.ITargetElement;
 import org.eclipse.ptp.remotetools.environment.core.ITargetElementStatus;
@@ -28,6 +25,12 @@
 import org.eclipse.ptp.remotetools.environment.core.TargetElement;
 import org.eclipse.ptp.remotetools.environment.core.TargetEnvironmentManager;
 import org.eclipse.ptp.remotetools.environment.core.TargetTypeElement;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnectionChangeEvent;
+import org.eclipse.remote.core.IRemoteConnectionManager;
+import org.eclipse.remote.core.IRemoteConnectionWorkingCopy;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
 
 public class RemoteToolsConnectionManager implements IRemoteConnectionManager, ITargetEventListener {
 	private final IRemoteServices fRemoteServices;
@@ -81,9 +84,9 @@
 	 * @see
 	 * org.eclipse.ptp.remote.core.IRemoteConnectionManager#getConnections()
 	 */
-	public IRemoteConnection[] getConnections() {
+	public List<IRemoteConnection> getConnections() {
 		refreshConnections();
-		return fConnections.values().toArray(new IRemoteConnection[fConnections.size()]);
+		return new ArrayList<IRemoteConnection>(fConnections.values());
 	}
 
 	/*
@@ -101,10 +104,10 @@
 		if (conn != null) {
 			switch (event) {
 			case ITargetElementStatus.RESUMED:
-				((RemoteToolsConnection) conn).fireConnectionChangeEvent(conn, IRemoteConnectionChangeEvent.CONNECTION_OPENED);
+				((RemoteToolsConnection) conn).fireConnectionChangeEvent(IRemoteConnectionChangeEvent.CONNECTION_OPENED);
 				break;
 			case ITargetElementStatus.STOPPED:
-				((RemoteToolsConnection) conn).fireConnectionChangeEvent(conn, IRemoteConnectionChangeEvent.CONNECTION_CLOSED);
+				((RemoteToolsConnection) conn).fireConnectionChangeEvent(IRemoteConnectionChangeEvent.CONNECTION_CLOSED);
 				break;
 			default:
 				/*
@@ -125,11 +128,21 @@
 	/**
 	 * @since 5.0
 	 */
-	public IRemoteConnection newConnection(String name) throws RemoteConnectionException {
+	public IRemoteConnectionWorkingCopy newConnection(String name) throws RemoteConnectionException {
+		if (getConnection(name) != null) {
+			throw new RemoteConnectionException(NLS.bind(Messages.RemoteToolsConnectionManager_Connection_with_name_already_exists, name));
+		}
+		TargetElement element = newTargetElement(name);
+		return createConnection(element).getWorkingCopy();
+	}
+
+	public TargetElement newTargetElement(String name) {
 		String id = EnvironmentPlugin.getDefault().getEnvironmentUniqueID();
-		TargetElement element = new TargetElement(fRemoteHost, name, id);
-		fRemoteHost.addElement(element);
-		return createConnection(element);
+		return new TargetElement(fRemoteHost, name, id);
+	}
+
+	public void addConnection(RemoteToolsConnection connection) {
+		fRemoteHost.addElement(connection.getTargetElement());
 	}
 
 	/*
@@ -159,12 +172,8 @@
 	 * @return new remote tools connection
 	 * @throws RemoteConnectionException
 	 */
-	private IRemoteConnection createConnection(ITargetElement element) throws RemoteConnectionException {
-		try {
-			return new RemoteToolsConnection(element.getName(), element, fRemoteServices);
-		} catch (CoreException e) {
-			throw new RemoteConnectionException(e.getMessage());
-		}
+	private IRemoteConnection createConnection(TargetElement element) {
+		return new RemoteToolsConnection(element.getName(), element, fRemoteServices);
 	}
 
 	/**
@@ -175,16 +184,14 @@
 		if (fRemoteHost != null) {
 			Map<String, IRemoteConnection> newConns = new HashMap<String, IRemoteConnection>();
 			for (Object obj : fRemoteHost.getElements()) {
-				ITargetElement element = (ITargetElement) obj;
-				IRemoteConnection conn = fConnections.get(element.getName());
-				if (conn == null) {
-					try {
+				if (obj instanceof TargetElement) {
+					TargetElement element = (TargetElement) obj;
+					IRemoteConnection conn = fConnections.get(element.getName());
+					if (conn == null) {
 						conn = createConnection(element);
-					} catch (RemoteConnectionException e) {
-						// Ignore
 					}
+					newConns.put(element.getName(), conn);
 				}
-				newConns.put(element.getName(), conn);
 			}
 			fConnections.clear();
 			fConnections.putAll(newConns);
diff --git a/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsConnectionWorkingCopy.java b/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsConnectionWorkingCopy.java
new file mode 100644
index 0000000..10fbf15
--- /dev/null
+++ b/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsConnectionWorkingCopy.java
@@ -0,0 +1,195 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ptp.internal.remote.remotetools.core;
+
+import java.util.Map;
+
+import org.eclipse.ptp.remotetools.environment.EnvironmentPlugin;
+import org.eclipse.ptp.remotetools.environment.core.TargetElement;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnectionWorkingCopy;
+
+/**
+ * @since 5.0
+ */
+public class RemoteToolsConnectionWorkingCopy extends RemoteToolsConnection implements IRemoteConnectionWorkingCopy {
+
+	private final RemoteToolsConnection fConnection;
+	private String fName;
+	private boolean fIsDirty;
+
+	public RemoteToolsConnectionWorkingCopy(RemoteToolsConnection conn) {
+		super(conn.getName(), new TargetElement(RemoteToolsServices.getTargetTypeElement(), conn.getName(), conn.getTargetControl()
+				.getConfig().getAttributes(), EnvironmentPlugin.getDefault().getEnvironmentUniqueID()), conn.getRemoteServices());
+		fConnection = conn;
+		fName = conn.getName();
+		fIsDirty = false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ptp.internal.remote.remotetools.core.RemoteToolsConnection#getAddress()
+	 */
+	@Override
+	public String getAddress() {
+		return getTargetControl().getConfig().getConnectionAddress();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ptp.internal.remote.remotetools.core.RemoteToolsConnection#getAttributes()
+	 */
+	@Override
+	public Map<String, String> getAttributes() {
+		return getTargetControl().getConfig().getAttributes().getAttributesAsMap();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#getName()
+	 */
+	@Override
+	public String getName() {
+		return fName;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnectionWorkingCopy#getOriginal()
+	 */
+	public IRemoteConnection getOriginal() {
+		return fConnection;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#getPort()
+	 */
+	@Override
+	public int getPort() {
+		return getTargetControl().getConfig().getConnectionPort();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#getUsername()
+	 */
+	@Override
+	public String getUsername() {
+		return getTargetControl().getConfig().getLoginUsername();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ptp.internal.remote.remotetools.core.RemoteToolsConnection#getWorkingCopy()
+	 */
+	@Override
+	public IRemoteConnectionWorkingCopy getWorkingCopy() {
+		return this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnectionWorkingCopy#isDirty()
+	 */
+	public boolean isDirty() {
+		return fIsDirty;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnectionWorkingCopy#save()
+	 */
+	public IRemoteConnection save() {
+		fConnection.getTargetElement().setAttributes(getTargetControl().getConfig().getAttributes());
+		if (!fName.equals(fConnection.getName())) {
+			fConnection.setName(fName);
+		}
+		((RemoteToolsConnectionManager) fConnection.getRemoteServices().getConnectionManager()).addConnection(fConnection);
+		fIsDirty = false;
+		return fConnection;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnectionWorkingCopy#setAddress(java.lang.String)
+	 */
+	public void setAddress(String address) {
+		fIsDirty = true;
+		getTargetControl().getConfig().setConnectionAddress(address);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnectionWorkingCopy#setAttribute(java.lang.String, java.lang.String)
+	 */
+	public void setAttribute(String key, String value) {
+		fIsDirty = true;
+		getTargetControl().getConfig().setAttribute(key, value);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ptp.internal.remote.remotetools.core.RemoteToolsConnection#setName(java.lang.String)
+	 */
+	@Override
+	public void setName(String name) {
+		fIsDirty = true;
+		fName = name;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnectionWorkingCopy#setPassword(java.lang.String)
+	 */
+	public void setPassword(String password) {
+		fIsDirty = true;
+		getTargetControl().getConfig().setLoginPassword(password);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnectionWorkingCopy#setPort(int)
+	 */
+	public void setPort(int port) {
+		fIsDirty = true;
+		getTargetControl().getConfig().setConnectionPort(port);
+	}
+
+	public void setTimeout(int timeout) {
+		fIsDirty = true;
+		getTargetControl().getConfig().setConnectionTimeout(timeout);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnectionWorkingCopy#setUsername(java.lang.String)
+	 */
+	public void setUsername(String userName) {
+		fIsDirty = true;
+		getTargetControl().getConfig().setLoginUsername(userName);
+	}
+}
diff --git a/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsFileManager.java b/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsFileManager.java
index c7aebe0..763dc0b 100644
--- a/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsFileManager.java
+++ b/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsFileManager.java
@@ -15,7 +15,7 @@
 import org.eclipse.core.filesystem.IFileStore;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteFileManager;
 
 public class RemoteToolsFileManager implements IRemoteFileManager {
 	private final RemoteToolsConnection fConnection;
diff --git a/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsFileStore.java b/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsFileStore.java
index f7ffd09..41733d8 100644
--- a/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsFileStore.java
+++ b/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsFileStore.java
@@ -32,12 +32,12 @@
 import org.eclipse.core.runtime.SubMonitor;
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.ptp.internal.remote.remotetools.core.messages.Messages;
-import org.eclipse.ptp.remote.core.RemoteServices;
 import org.eclipse.ptp.remotetools.core.IRemoteExecutionManager;
 import org.eclipse.ptp.remotetools.core.IRemoteFileTools;
 import org.eclipse.ptp.remotetools.core.IRemoteItem;
 import org.eclipse.ptp.remotetools.exception.CancelException;
 import org.eclipse.ptp.remotetools.exception.RemoteOperationException;
+import org.eclipse.remote.core.RemoteServices;
 
 public class RemoteToolsFileStore extends FileStore {
 	private static Map<String, RemoteToolsFileStore> instanceMap = new HashMap<String, RemoteToolsFileStore>();
@@ -163,7 +163,8 @@
 				}
 			} catch (Exception e) {
 				throw new CoreException(new Status(IStatus.ERROR, RemoteToolsAdapterCorePlugin.getDefault().getBundle()
-						.getSymbolicName(), EFS.ERROR_INTERNAL, NLS.bind(Messages.RemoteToolsFileStore_0, fRemotePath.toString()), e));
+						.getSymbolicName(), EFS.ERROR_INTERNAL, NLS.bind(Messages.RemoteToolsFileStore_0, fRemotePath.toString()),
+						e));
 			}
 		}
 	}
@@ -240,27 +241,42 @@
 		}
 		//		System.out.println("MKDIR: " + fRemotePath.toString()); //$NON-NLS-1$
 
-		IRemoteItem item = getRemoteItem(monitor);
+		if ((options & EFS.SHALLOW) == EFS.SHALLOW) {
+			IFileStore parent = getParent();
+			if (parent != null && !parent.fetchInfo(EFS.NONE, monitor).exists()) {
+				throw new CoreException(new Status(IStatus.ERROR, RemoteToolsAdapterCorePlugin.getDefault().getBundle()
+						.getSymbolicName(), EFS.ERROR_WRITE, NLS.bind(Messages.RemoteToolsFileStore_1, fRemotePath.toString()),
+						null));
+			}
+			if (monitor.isCanceled()) {
+				return this;
+			}
+		}
 
-		if (!item.exists()) {
-			if ((options & EFS.SHALLOW) == EFS.SHALLOW) {
-				IFileStore parent = getParent();
-				if (parent != null && !parent.fetchInfo(EFS.NONE, monitor).exists()) {
+		try {
+			getExecutionManager(monitor).getRemoteFileTools().createDirectory(fRemotePath.toString(), monitor);
+			cacheRemoteItem(null);
+		} catch (Exception e) {
+			// Ignore exception
+		}
+
+		if (!monitor.isCanceled()) {
+			/*
+			 * Check if the result exists and is a directory, throw an exception if neither.
+			 */
+			IRemoteItem item = getRemoteItem(monitor);
+			if (!monitor.isCanceled()) {
+				if (!item.exists()) {
 					throw new CoreException(new Status(IStatus.ERROR, RemoteToolsAdapterCorePlugin.getDefault().getBundle()
-							.getSymbolicName(), EFS.ERROR_WRITE, NLS.bind(Messages.RemoteToolsFileStore_1, fRemotePath.toString()), null));
+							.getSymbolicName(), EFS.ERROR_WRITE, NLS.bind(Messages.RemoteToolsFileStore_2, fRemotePath.toString()),
+							null));
+				}
+				if (!item.isDirectory()) {
+					throw new CoreException(new Status(IStatus.ERROR, RemoteToolsAdapterCorePlugin.getDefault().getBundle()
+							.getSymbolicName(), EFS.ERROR_WRONG_TYPE, NLS.bind(Messages.RemoteToolsFileStore_13,
+							fRemotePath.toString()), null));
 				}
 			}
-
-			try {
-				getExecutionManager(monitor).getRemoteFileTools().createDirectory(fRemotePath.toString(), monitor);
-				cacheRemoteItem(null);
-			} catch (Exception e) {
-				throw new CoreException(new Status(IStatus.ERROR, RemoteToolsAdapterCorePlugin.getDefault().getBundle()
-						.getSymbolicName(), EFS.ERROR_INTERNAL, NLS.bind(Messages.RemoteToolsFileStore_2, fRemotePath.toString()), e));
-			}
-		} else if (!item.isDirectory()) {
-			throw new CoreException(new Status(IStatus.ERROR, RemoteToolsAdapterCorePlugin.getDefault().getBundle()
-					.getSymbolicName(), EFS.ERROR_WRONG_TYPE, NLS.bind(Messages.RemoteToolsFileStore_13, fRemotePath.toString()), null));
 		}
 
 		return this;
@@ -290,7 +306,8 @@
 		if (item.isDirectory()) {
 			//			System.out.println("OPENINPUTSTREAM: " + Messages.RemoteToolsFileStore_3); //$NON-NLS-1$
 			throw new CoreException(new Status(IStatus.ERROR, RemoteToolsAdapterCorePlugin.getDefault().getBundle()
-					.getSymbolicName(), EFS.ERROR_WRONG_TYPE, NLS.bind(Messages.RemoteToolsFileStore_3, fRemotePath.toString()), null));
+					.getSymbolicName(), EFS.ERROR_WRONG_TYPE, NLS.bind(Messages.RemoteToolsFileStore_3, fRemotePath.toString()),
+					null));
 		}
 
 		try {
diff --git a/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsProcess.java b/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsProcess.java
index 0cb40d7..8884007 100644
--- a/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsProcess.java
+++ b/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsProcess.java
@@ -16,7 +16,7 @@
 import java.io.PipedInputStream;
 import java.io.PipedOutputStream;
 
-import org.eclipse.ptp.remote.core.AbstractRemoteProcess;
+import org.eclipse.remote.core.AbstractRemoteProcess;
 
 public class RemoteToolsProcess extends AbstractRemoteProcess {
 	private static int refCount = 0;
diff --git a/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsProcessBuilder.java b/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsProcessBuilder.java
index 9051df2..1599869 100644
--- a/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsProcessBuilder.java
+++ b/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsProcessBuilder.java
@@ -22,12 +22,12 @@
 import java.util.Set;
 
 import org.eclipse.core.filesystem.IFileStore;
-import org.eclipse.ptp.remote.core.AbstractRemoteProcessBuilder;
-import org.eclipse.ptp.remote.core.IRemoteProcess;
 import org.eclipse.ptp.remotetools.core.IRemoteExecutionManager;
 import org.eclipse.ptp.remotetools.core.IRemoteExecutionTools;
 import org.eclipse.ptp.remotetools.core.IRemoteScript;
 import org.eclipse.ptp.remotetools.core.RemoteProcess;
+import org.eclipse.remote.core.AbstractRemoteProcessBuilder;
+import org.eclipse.remote.core.IRemoteProcess;
 
 public class RemoteToolsProcessBuilder extends AbstractRemoteProcessBuilder {
 	private final RemoteToolsConnection fConnection;
@@ -40,7 +40,7 @@
 	 * @since 4.0
 	 */
 	public RemoteToolsProcessBuilder(RemoteToolsConnection conn, RemoteToolsFileManager fileMgr, List<String> command) {
-		super(conn, command);
+		super(command);
 		fConnection = conn;
 		fFileMgr = fileMgr;
 		fRemoteEnv = new HashMap<String, String>(conn.getEnv());
@@ -71,7 +71,7 @@
 	public IFileStore directory() {
 		IFileStore dir = super.directory();
 		if (dir == null) {
-			dir = fFileMgr.getResource(connection().getWorkingDirectory());
+			dir = fFileMgr.getResource(fConnection.getWorkingDirectory());
 			directory(dir);
 		}
 		return dir;
diff --git a/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsServices.java b/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsServices.java
index 8340a1d..c9c3985 100644
--- a/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsServices.java
+++ b/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsServices.java
@@ -10,22 +10,13 @@
  *******************************************************************************/
 package org.eclipse.ptp.internal.remote.remotetools.core;
 
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.ptp.remote.core.AbstractRemoteServices;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.core.IRemoteProcess;
-import org.eclipse.ptp.remote.core.IRemoteProcessBuilder;
-import org.eclipse.ptp.remote.core.IRemoteServicesDescriptor;
 import org.eclipse.ptp.remotetools.environment.EnvironmentPlugin;
 import org.eclipse.ptp.remotetools.environment.core.TargetEnvironmentManager;
 import org.eclipse.ptp.remotetools.environment.core.TargetTypeElement;
+import org.eclipse.remote.core.AbstractRemoteServices;
+import org.eclipse.remote.core.IRemoteConnectionManager;
+import org.eclipse.remote.core.IRemoteServicesDescriptor;
 
 public class RemoteToolsServices extends AbstractRemoteServices {
 	public static final String REMOTE_TOOLS_ID = "org.eclipse.ptp.remote.RemoteTools"; //$NON-NLS-1$
@@ -50,19 +41,14 @@
 	}
 
 	private final RemoteToolsConnectionManager connMgr = new RemoteToolsConnectionManager(this);
-	private final Map<String, RemoteToolsFileManager> fileMgrs = new HashMap<String, RemoteToolsFileManager>();
 
 	public RemoteToolsServices(IRemoteServicesDescriptor descriptor) {
 		super(descriptor);
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteServices#getCommandShell(org.eclipse.ptp.remote.core.IRemoteConnection, int)
-	 */
-	public IRemoteProcess getCommandShell(IRemoteConnection conn, int flags) throws IOException {
-		throw new IOException("Not currently implemented"); //$NON-NLS-1$
+	public int getCapabilities() {
+		return CAPABILITY_ADD_CONNECTIONS | CAPABILITY_EDIT_CONNECTIONS | CAPABILITY_REMOVE_CONNECTIONS
+				| CAPABILITY_SUPPORTS_TCP_PORT_FORWARDING | CAPABILITY_SUPPORTS_X11_FORWARDING;
 	}
 
 	/*
@@ -79,44 +65,6 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteServicesDescriptor#getFileManager(
-	 * org.eclipse.ptp.remote.core.IRemoteConnection)
-	 */
-	public IRemoteFileManager getFileManager(IRemoteConnection conn) {
-		RemoteToolsFileManager fileMgr = fileMgrs.get(conn.getName());
-		if (fileMgr == null) {
-			fileMgr = new RemoteToolsFileManager((RemoteToolsConnection) conn);
-			fileMgrs.put(conn.getName(), fileMgr);
-		}
-		return fileMgr;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteServicesDescriptor#getProcessBuilder
-	 * (org.eclipse.ptp.remote.core.IRemoteConnection, java.util.List)
-	 */
-	public IRemoteProcessBuilder getProcessBuilder(IRemoteConnection conn, List<String> command) {
-		return new RemoteToolsProcessBuilder((RemoteToolsConnection) conn, (RemoteToolsFileManager) getFileManager(conn), command);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteServicesDescriptor#getProcessBuilder
-	 * (org.eclipse.ptp.remote.core.IRemoteConnection, java.lang.String[])
-	 */
-	public IRemoteProcessBuilder getProcessBuilder(IRemoteConnection conn, String... command) {
-		return new RemoteToolsProcessBuilder((RemoteToolsConnection) conn, (RemoteToolsFileManager) getFileManager(conn), command);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
 	 * @see org.eclipse.ptp.remote.core.IRemoteServices#initialize(org.eclipse.core.runtime.IProgressMonitor)
 	 */
 	public boolean initialize(IProgressMonitor monitor) {
diff --git a/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsServicesFactory.java b/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsServicesFactory.java
index bbc5dcf..0e59cb9 100644
--- a/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsServicesFactory.java
+++ b/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/RemoteToolsServicesFactory.java
@@ -10,15 +10,15 @@
  *******************************************************************************/
 package org.eclipse.ptp.internal.remote.remotetools.core;
 
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.IRemoteServicesDescriptor;
-import org.eclipse.ptp.remote.core.IRemoteServicesFactory;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.IRemoteServicesDescriptor;
+import org.eclipse.remote.core.IRemoteServicesFactory;
 
 public class RemoteToolsServicesFactory implements IRemoteServicesFactory {
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteServicesFactory#getServices(org.eclipse.ptp.remote.core.IRemoteServicesDescriptor)
+	 * @see org.eclipse.remote.core.IRemoteServicesFactory#getServices(org.eclipse.remote.core.IRemoteServicesDescriptor)
 	 */
 	public IRemoteServices getServices(IRemoteServicesDescriptor descriptor) {
 		return new RemoteToolsServices(descriptor);
diff --git a/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/messages/Messages.java b/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/messages/Messages.java
index f36a28c..0320362 100755
--- a/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/messages/Messages.java
+++ b/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/messages/Messages.java
@@ -28,6 +28,8 @@
 	public static String RemoteToolsConnection_forwarding;
 	public static String RemoteToolsConnection_port_is_already_forwarded;
 	public static String RemoteToolsConnectionManager_cannotRemoveOpenConnection;
+
+	public static String RemoteToolsConnectionManager_Connection_with_name_already_exists;
 	public static String RemoteToolsConnectionManager_invalidConnectionType;
 	public static String RemoteToolsFileStore_0;
 	public static String RemoteToolsFileStore_1;
diff --git a/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/messages/messages.properties b/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/messages/messages.properties
index d6ab7b3..50ce0ca 100755
--- a/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/messages/messages.properties
+++ b/core/org.eclipse.ptp.remote.remotetools.core/src/org/eclipse/ptp/internal/remote/remotetools/core/messages/messages.properties
@@ -15,6 +15,7 @@
 RemoteToolsConnection_forwarding=Setting up remote forwarding
 RemoteToolsConnection_port_is_already_forwarded=Port {0} is already forwarded
 RemoteToolsConnectionManager_cannotRemoveOpenConnection=Cannot remove an open connection
+RemoteToolsConnectionManager_Connection_with_name_already_exists=A connection with name "{0}" already exists
 RemoteToolsConnectionManager_invalidConnectionType=Invalid connection type
 RemoteToolsFileStore_0=Could not delete file {0}
 RemoteToolsFileStore_1=The parent of directory {0} does not exist
diff --git a/core/org.eclipse.ptp.remote.remotetools.ui/META-INF/MANIFEST.MF b/core/org.eclipse.ptp.remote.remotetools.ui/META-INF/MANIFEST.MF
index c91057d..283a786 100644
--- a/core/org.eclipse.ptp.remote.remotetools.ui/META-INF/MANIFEST.MF
+++ b/core/org.eclipse.ptp.remote.remotetools.ui/META-INF/MANIFEST.MF
@@ -9,8 +9,8 @@
  org.eclipse.core.filesystem,
  org.eclipse.ui,
  org.eclipse.ui.ide,
- org.eclipse.ptp.remote.core,
- org.eclipse.ptp.remote.ui,
+ org.eclipse.remote.core,
+ org.eclipse.remote.ui,
  org.eclipse.ptp.remotetools.environment.core,
  org.eclipse.ptp.remotetools.environment.generichost,
  org.eclipse.ptp.remote.remotetools.core
diff --git a/core/org.eclipse.ptp.remote.remotetools.ui/plugin.xml b/core/org.eclipse.ptp.remote.remotetools.ui/plugin.xml
index 11f4727..bf894e7 100644
--- a/core/org.eclipse.ptp.remote.remotetools.ui/plugin.xml
+++ b/core/org.eclipse.ptp.remote.remotetools.ui/plugin.xml
@@ -2,7 +2,7 @@
 <?eclipse version="3.2"?>
 <plugin>
    <extension
-         point="org.eclipse.ptp.remote.ui.remoteUIServices">
+         point="org.eclipse.remote.ui.remoteUIServices">
       <remoteUIServices
             class="org.eclipse.ptp.internal.remote.remotetools.ui.RemoteToolsUIServicesFactory"
             id="org.eclipse.ptp.remote.RemoteTools"
diff --git a/core/org.eclipse.ptp.remote.remotetools.ui/pom.xml b/core/org.eclipse.ptp.remote.remotetools.ui/pom.xml
index 3f2ddc9..00f46fd 100644
--- a/core/org.eclipse.ptp.remote.remotetools.ui/pom.xml
+++ b/core/org.eclipse.ptp.remote.remotetools.ui/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/core/org.eclipse.ptp.remote.remotetools.ui/src/org/eclipse/ptp/internal/remote/remotetools/ui/RemoteToolsAdapterUIPlugin.java b/core/org.eclipse.ptp.remote.remotetools.ui/src/org/eclipse/ptp/internal/remote/remotetools/ui/RemoteToolsAdapterUIPlugin.java
index 9d29941..184ec54 100644
--- a/core/org.eclipse.ptp.remote.remotetools.ui/src/org/eclipse/ptp/internal/remote/remotetools/ui/RemoteToolsAdapterUIPlugin.java
+++ b/core/org.eclipse.ptp.remote.remotetools.ui/src/org/eclipse/ptp/internal/remote/remotetools/ui/RemoteToolsAdapterUIPlugin.java
@@ -1,5 +1,7 @@
 package org.eclipse.ptp.internal.remote.remotetools.ui;
 
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.ui.plugin.AbstractUIPlugin;
 import org.osgi.framework.BundleContext;
@@ -37,6 +39,48 @@
 	}
 
 	/**
+	 * Get unique identifier
+	 * 
+	 * @return
+	 */
+	public static String getUniqueIdentifier() {
+		if (getDefault() == null) {
+			return PLUGIN_ID;
+		}
+		return getDefault().getBundle().getSymbolicName();
+	}
+
+	/**
+	 * Logs the specified status with this plug-in's log.
+	 * 
+	 * @param status
+	 *            status to log
+	 */
+	public static void log(IStatus status) {
+		getDefault().getLog().log(status);
+	}
+
+	/**
+	 * Logs an internal error with the specified message.
+	 * 
+	 * @param message
+	 *            the error message to log
+	 */
+	public static void log(String message) {
+		log(new Status(IStatus.ERROR, getUniqueIdentifier(), IStatus.ERROR, message, null));
+	}
+
+	/**
+	 * Logs an internal error with the specified throwable
+	 * 
+	 * @param e
+	 *            the exception to be logged
+	 */
+	public static void log(Throwable e) {
+		log(new Status(IStatus.ERROR, getUniqueIdentifier(), IStatus.ERROR, e.getMessage(), e));
+	}
+
+	/**
 	 * The constructor
 	 */
 	public RemoteToolsAdapterUIPlugin() {
diff --git a/core/org.eclipse.ptp.remote.remotetools.ui/src/org/eclipse/ptp/internal/remote/remotetools/ui/RemoteToolsFileSystemContributor.java b/core/org.eclipse.ptp.remote.remotetools.ui/src/org/eclipse/ptp/internal/remote/remotetools/ui/RemoteToolsFileSystemContributor.java
index 7dfdc37..075502f 100644
--- a/core/org.eclipse.ptp.remote.remotetools.ui/src/org/eclipse/ptp/internal/remote/remotetools/ui/RemoteToolsFileSystemContributor.java
+++ b/core/org.eclipse.ptp.remote.remotetools.ui/src/org/eclipse/ptp/internal/remote/remotetools/ui/RemoteToolsFileSystemContributor.java
@@ -29,12 +29,12 @@
 import org.eclipse.ptp.internal.remote.remotetools.core.RemoteToolsAdapterCorePlugin;
 import org.eclipse.ptp.internal.remote.remotetools.core.RemoteToolsFileSystem;
 import org.eclipse.ptp.internal.remote.remotetools.ui.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
-import org.eclipse.ptp.remote.ui.IRemoteUIFileManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIServices;
-import org.eclipse.ptp.remote.ui.RemoteUIServices;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.RemoteServices;
+import org.eclipse.remote.ui.IRemoteUIFileManager;
+import org.eclipse.remote.ui.IRemoteUIServices;
+import org.eclipse.remote.ui.RemoteUIServices;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.ide.fileSystem.FileSystemContributor;
 
@@ -75,6 +75,7 @@
 		try {
 			return new URI(string);
 		} catch (URISyntaxException e) {
+			// Ignore
 		}
 		return null;
 	}
diff --git a/core/org.eclipse.ptp.remote.remotetools.ui/src/org/eclipse/ptp/internal/remote/remotetools/ui/RemoteToolsUIConnectionManager.java b/core/org.eclipse.ptp.remote.remotetools.ui/src/org/eclipse/ptp/internal/remote/remotetools/ui/RemoteToolsUIConnectionManager.java
index a44f9b1..f86d453 100644
--- a/core/org.eclipse.ptp.remote.remotetools.ui/src/org/eclipse/ptp/internal/remote/remotetools/ui/RemoteToolsUIConnectionManager.java
+++ b/core/org.eclipse.ptp.remote.remotetools.ui/src/org/eclipse/ptp/internal/remote/remotetools/ui/RemoteToolsUIConnectionManager.java
@@ -10,121 +10,89 @@
  *******************************************************************************/
 package org.eclipse.ptp.internal.remote.remotetools.ui;
 
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.Set;
 
+import org.eclipse.core.runtime.CoreException;
 import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.ptp.internal.remote.remotetools.core.RemoteToolsConnectionManager;
+import org.eclipse.ptp.internal.remote.remotetools.core.RemoteToolsConnectionWorkingCopy;
 import org.eclipse.ptp.internal.remote.remotetools.core.RemoteToolsServices;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.ui.AbstractRemoteUIConnectionManager;
+import org.eclipse.ptp.remotetools.environment.control.ITargetConfig;
 import org.eclipse.ptp.remotetools.environment.core.TargetElement;
-import org.eclipse.ptp.remotetools.environment.core.TargetTypeElement;
-import org.eclipse.ptp.remotetools.environment.generichost.core.ConfigFactory;
 import org.eclipse.ptp.remotetools.environment.wizard.EnvironmentWizard;
+import org.eclipse.remote.core.IRemoteConnectionWorkingCopy;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
+import org.eclipse.remote.ui.AbstractRemoteUIConnectionManager;
+import org.eclipse.remote.ui.IRemoteUIConnectionWizard;
 import org.eclipse.swt.widgets.Shell;
 
 public class RemoteToolsUIConnectionManager extends AbstractRemoteUIConnectionManager {
-	private final TargetTypeElement remoteHost;
-	private final IRemoteConnectionManager connMgr;
+	private final RemoteToolsConnectionManager connMgr;
 
-	public RemoteToolsUIConnectionManager(IRemoteServices services) {
-		connMgr = services.getConnectionManager();
-		remoteHost = RemoteToolsServices.getTargetTypeElement();
+	public RemoteToolsUIConnectionManager(RemoteToolsServices services) {
+		connMgr = (RemoteToolsConnectionManager) services.getConnectionManager();
 	}
 
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteUIConnectionManager#newConnection()
+	 * @see org.eclipse.remote.ui.IRemoteUIConnectionManager#getConnectionWizard(org.eclipse.swt.widgets.Shell)
 	 */
-	public IRemoteConnection newConnection(Shell shell) {
-		return newConnection(shell, null, null);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.ui.IRemoteUIConnectionManager#newConnection(org
-	 * .eclipse.swt.widgets.Shell,
-	 * org.eclipse.ptp.remote.ui.IRemoteUIConnectionManager
-	 * .IRemoteConnectionAttributeHint[], java.lang.String[])
-	 */
-	public IRemoteConnection newConnection(Shell shell, String[] attrHints, String[] attrHintValues) {
-		if (remoteHost != null) {
-			IRemoteConnection[] oldConns = connMgr.getConnections();
-			EnvironmentWizard wizard;
-
-			if (attrHints != null) {
-				Map<String, String> attrs = new HashMap<String, String>();
-				for (int i = 0; i < attrHints.length; i++) {
-					if (attrHints[i].equals(CONNECTION_ADDRESS_HINT)) {
-						attrs.put(ConfigFactory.ATTR_CONNECTION_ADDRESS, attrHintValues[i]);
-					} else if (attrHints[i].equals(CONNECTION_PORT_HINT)) {
-						attrs.put(ConfigFactory.ATTR_CONNECTION_PORT, attrHintValues[i]);
-					} else if (attrHints[i].equals(CONNECTION_TIMEOUT_HINT)) {
-						attrs.put(ConfigFactory.ATTR_CONNECTION_TIMEOUT, attrHintValues[i]);
-					} else if (attrHints[i].equals(LOGIN_USERNAME_HINT)) {
-						attrs.put(ConfigFactory.ATTR_LOGIN_USERNAME, attrHintValues[i]);
-					}
-				}
-				TargetElement target = new TargetElement(remoteHost, remoteHost.getName(), attrs, remoteHost.getName());
-				remoteHost.addElement(target);
-				wizard = new EnvironmentWizard(target);
-			} else {
-				wizard = new EnvironmentWizard(remoteHost);
-			}
-
-			WizardDialog dialog = new WizardDialog(shell, wizard);
-			dialog.create();
-			dialog.setBlockOnOpen(true);
-
-			if (dialog.open() == WizardDialog.OK) {
-				/*
-				 * Locate the new connection and return it. Assumes connections
-				 * can only be created by the wizard, NOT removed.
-				 */
-				IRemoteConnection[] newConns = connMgr.getConnections();
-
-				if (newConns.length <= oldConns.length) {
-					return null;
-				}
-
-				Arrays.sort(oldConns, new Comparator<IRemoteConnection>() {
-					public int compare(IRemoteConnection c1, IRemoteConnection c2) {
-						return c1.getName().compareToIgnoreCase(c2.getName());
-					}
-				});
-				Arrays.sort(newConns, new Comparator<IRemoteConnection>() {
-					public int compare(IRemoteConnection c1, IRemoteConnection c2) {
-						return c1.getName().compareToIgnoreCase(c2.getName());
-					}
-				});
-				for (int i = 0; i < oldConns.length; i++) {
-					if (!oldConns[i].equals(newConns[i])) {
-						return newConns[i];
-					}
-				}
-				return newConns[newConns.length - 1];
-			}
+	public IRemoteUIConnectionWizard getConnectionWizard(final Shell shell) {
+		final TargetElement element = connMgr.newTargetElement("new");
+		final ITargetConfig config;
+		try {
+			config = element.getControl().getConfig();
+		} catch (CoreException e) {
+			return null;
 		}
-		return null;
-	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.ui.IRemoteUIConnectionManager#updateConnection
-	 * (org.eclipse.swt.widgets.Shell,
-	 * org.eclipse.ptp.remote.core.IRemoteConnection)
-	 */
-	public void updateConnection(Shell shell, IRemoteConnection connection) {
-		// Not implemented yet
+		return new IRemoteUIConnectionWizard() {
+			private String fName;
+			private RemoteToolsConnectionWorkingCopy fConnection;
+
+			public IRemoteConnectionWorkingCopy open() {
+				final RemoteToolsConnectionWorkingCopy conn;
+				if (fConnection == null) {
+					try {
+						conn = (RemoteToolsConnectionWorkingCopy) connMgr.newConnection(fName);
+						for (String key : config.getAttributes().getAttributesAsMap().keySet()) {
+							conn.setAttribute(key, config.getAttributes().getString(key));
+						}
+					} catch (RemoteConnectionException e) {
+						RemoteToolsAdapterUIPlugin.log(e);
+						return null;
+					}
+				} else {
+					conn = fConnection;
+				}
+
+				EnvironmentWizard wizard = new EnvironmentWizard(conn.getTargetElement());
+
+				WizardDialog dialog = new WizardDialog(shell, wizard);
+				dialog.create();
+				dialog.setBlockOnOpen(true);
+
+				if (dialog.open() == WizardDialog.OK) {
+					return conn;
+				}
+				return null;
+			}
+
+			public void setInvalidConnectionNames(Set<String> names) {
+				// TODO Auto-generated method stub
+
+			}
+
+			public void setConnectionName(String name) {
+				fName = name;
+			}
+
+			public void setConnection(IRemoteConnectionWorkingCopy connection) {
+				if (connection instanceof RemoteToolsConnectionWorkingCopy) {
+					fConnection = (RemoteToolsConnectionWorkingCopy) connection;
+				}
+			}
+		};
 	}
 }
diff --git a/core/org.eclipse.ptp.remote.remotetools.ui/src/org/eclipse/ptp/internal/remote/remotetools/ui/RemoteToolsUIFileManager.java b/core/org.eclipse.ptp.remote.remotetools.ui/src/org/eclipse/ptp/internal/remote/remotetools/ui/RemoteToolsUIFileManager.java
index 48743de..5738f72 100644
--- a/core/org.eclipse.ptp.remote.remotetools.ui/src/org/eclipse/ptp/internal/remote/remotetools/ui/RemoteToolsUIFileManager.java
+++ b/core/org.eclipse.ptp.remote.remotetools.ui/src/org/eclipse/ptp/internal/remote/remotetools/ui/RemoteToolsUIFileManager.java
@@ -10,104 +10,100 @@
  *******************************************************************************/
 package org.eclipse.ptp.internal.remote.remotetools.ui;
 
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.filesystem.IFileStore;
 import org.eclipse.jface.window.Window;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.ui.IRemoteUIFileManager;
-import org.eclipse.ptp.remote.ui.dialogs.RemoteResourceBrowser;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.ui.IRemoteUIFileManager;
+import org.eclipse.remote.ui.dialogs.RemoteResourceBrowser;
+import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Shell;
 
 public class RemoteToolsUIFileManager implements IRemoteUIFileManager {
-	private IRemoteServices services = null;
 	private IRemoteConnection connection = null;
 	private boolean showConnections = false;
 
-	public RemoteToolsUIFileManager(IRemoteServices services) {
-		this.services = services;
-	}
-
 	/*
 	 * (non-Javadoc)
 	 * 
 	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteFileManager#browseDirectory(org.eclipse
+	 * org.eclipse.remote.core.IRemoteFileManager#browseDirectory(org.eclipse
 	 * .swt.widgets.Shell, java.lang.String, java.lang.String)
 	 */
-	public String browseDirectory(Shell shell, String message,
-			String filterPath, int flags) {
-		RemoteResourceBrowser browser = new RemoteResourceBrowser(services,
-				connection, shell, RemoteResourceBrowser.SINGLE);
+	public String browseDirectory(Shell shell, String message, String filterPath, int flags) {
+		RemoteResourceBrowser browser = new RemoteResourceBrowser(shell, SWT.SINGLE);
 		browser.setType(RemoteResourceBrowser.DIRECTORY_BROWSER);
 		browser.setInitialPath(filterPath);
 		browser.setTitle(message);
 		browser.showConnections(showConnections);
+		browser.setConnection(connection);
 		if (browser.open() == Window.CANCEL) {
 			return null;
 		}
 		connection = browser.getConnection();
-		String path = browser.getPath();
-		if (path == null) {
+		IFileStore resource = browser.getResource();
+		if (resource == null) {
 			return null;
 		}
-		return path;
+		return resource.toURI().getPath();
 	}
 
 	/*
 	 * (non-Javadoc)
 	 * 
 	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteFileManager#browseFile(org.eclipse
+	 * org.eclipse.remote.core.IRemoteFileManager#browseFile(org.eclipse
 	 * .swt.widgets.Shell, java.lang.String, java.lang.String)
 	 */
-	public String browseFile(Shell shell, String message, String filterPath,
-			int flags) {
-		RemoteResourceBrowser browser = new RemoteResourceBrowser(services,
-				connection, shell, RemoteResourceBrowser.SINGLE);
+	public String browseFile(Shell shell, String message, String filterPath, int flags) {
+		RemoteResourceBrowser browser = new RemoteResourceBrowser(shell, SWT.SINGLE);
 		browser.setType(RemoteResourceBrowser.FILE_BROWSER);
 		browser.setInitialPath(filterPath);
 		browser.setTitle(message);
 		browser.showConnections(showConnections);
+		browser.setConnection(connection);
 		if (browser.open() == Window.CANCEL) {
 			return null;
 		}
 		connection = browser.getConnection();
-		String path = browser.getPath();
-		if (path == null) {
+		IFileStore resource = browser.getResource();
+		if (resource == null) {
 			return null;
 		}
-		return path;
+		return resource.toURI().getPath();
 	}
 
 	/*
 	 * (non-Javadoc)
 	 * 
 	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteFileManager#browseFile(org.eclipse
+	 * org.eclipse.remote.core.IRemoteFileManager#browseFile(org.eclipse
 	 * .swt.widgets.Shell, java.lang.String, java.lang.String)
 	 */
-	public String[] browseFiles(Shell shell, String message, String filterPath,
-			int flags) {
-		RemoteResourceBrowser browser = new RemoteResourceBrowser(services,
-				connection, shell, RemoteResourceBrowser.MULTI);
+	public List<String> browseFiles(Shell shell, String message, String filterPath, int flags) {
+		RemoteResourceBrowser browser = new RemoteResourceBrowser(shell, SWT.MULTI);
 		browser.setType(RemoteResourceBrowser.FILE_BROWSER);
 		browser.setInitialPath(filterPath);
 		browser.setTitle(message);
 		browser.showConnections(showConnections);
+		browser.setConnection(connection);
 		if (browser.open() == Window.CANCEL) {
 			return null;
 		}
 		connection = browser.getConnection();
-		String path[] = browser.getPaths();
-		if (path == null) {
-			return null;
+		List<String> paths = new ArrayList<String>();
+		for (IFileStore store : browser.getResources()) {
+			paths.add(store.toURI().getPath());
 		}
-		return path;
+		return paths;
 	}
 
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.ui.IRemoteUIFileManager#getConnection()
+	 * @see org.eclipse.remote.ui.IRemoteUIFileManager#getConnection()
 	 */
 	public IRemoteConnection getConnection() {
 		return connection;
@@ -117,8 +113,8 @@
 	 * (non-Javadoc)
 	 * 
 	 * @see
-	 * org.eclipse.ptp.remote.ui.IRemoteUIFileManager#setConnection(org.eclipse
-	 * .ptp.remote.core.IRemoteConnection)
+	 * org.eclipse.remote.ui.IRemoteUIFileManager#setConnection(org.eclipse
+	 * .remote.core.IRemoteConnection)
 	 */
 	public void setConnection(IRemoteConnection connection) {
 		this.connection = connection;
@@ -128,7 +124,7 @@
 	 * (non-Javadoc)
 	 * 
 	 * @see
-	 * org.eclipse.ptp.remote.ui.IRemoteUIFileManager#showConnections(boolean)
+	 * org.eclipse.remote.ui.IRemoteUIFileManager#showConnections(boolean)
 	 */
 	public void showConnections(boolean enable) {
 		showConnections = enable;
diff --git a/core/org.eclipse.ptp.remote.remotetools.ui/src/org/eclipse/ptp/internal/remote/remotetools/ui/RemoteToolsUIServices.java b/core/org.eclipse.ptp.remote.remotetools.ui/src/org/eclipse/ptp/internal/remote/remotetools/ui/RemoteToolsUIServices.java
index 0ff622e..2ae8150 100644
--- a/core/org.eclipse.ptp.remote.remotetools.ui/src/org/eclipse/ptp/internal/remote/remotetools/ui/RemoteToolsUIServices.java
+++ b/core/org.eclipse.ptp.remote.remotetools.ui/src/org/eclipse/ptp/internal/remote/remotetools/ui/RemoteToolsUIServices.java
@@ -10,58 +10,66 @@
  *******************************************************************************/
 package org.eclipse.ptp.internal.remote.remotetools.ui;
 
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.ui.IRemoteUIConnectionManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIFileManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIServices;
-
+import org.eclipse.ptp.internal.remote.remotetools.core.RemoteToolsServices;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.ui.IRemoteUIConnectionManager;
+import org.eclipse.remote.ui.IRemoteUIFileManager;
+import org.eclipse.remote.ui.IRemoteUIServices;
 
 public class RemoteToolsUIServices implements IRemoteUIServices {
 	private static RemoteToolsUIServices fInstance = null;
-	
+
 	/**
 	 * Get shared instance of this class
 	 * 
 	 * @return instance
 	 */
 	public static RemoteToolsUIServices getInstance(IRemoteServices services) {
-		if (fInstance == null) {
-			fInstance = new RemoteToolsUIServices(services);
+		if (fInstance == null && services instanceof RemoteToolsServices) {
+			fInstance = new RemoteToolsUIServices((RemoteToolsServices) services);
 		}
 		return fInstance;
 	}
 
-	private final IRemoteServices fServices;
+	private final RemoteToolsServices fServices;
 
-	public RemoteToolsUIServices(IRemoteServices services) {
+	private RemoteToolsUIServices(RemoteToolsServices services) {
 		fServices = services;
 	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ptp.remote.ui.IRemoteUIServicesDescriptor#getId()
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.ui.IRemoteUIServicesDescriptor#getId()
 	 */
 	public String getId() {
 		return fServices.getId();
 	}
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.ptp.remote.ui.IRemoteUIServicesDescriptor#getName()
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.ui.IRemoteUIServicesDescriptor#getName()
 	 */
 	public String getName() {
 		return fServices.getName();
 	}
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.ptp.remote.ui.IRemoteUIServicesDescriptor#getUIConnectionManager()
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.ui.IRemoteUIServicesDescriptor#getUIConnectionManager()
 	 */
 	public IRemoteUIConnectionManager getUIConnectionManager() {
 		return new RemoteToolsUIConnectionManager(fServices);
 	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ptp.remote.ui.IRemoteUIServicesDescriptor#getUIFileManager()
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.ui.IRemoteUIServicesDescriptor#getUIFileManager()
 	 */
 	public IRemoteUIFileManager getUIFileManager() {
-		return new RemoteToolsUIFileManager(fServices);
+		return new RemoteToolsUIFileManager();
 	}
 }
diff --git a/core/org.eclipse.ptp.remote.remotetools.ui/src/org/eclipse/ptp/internal/remote/remotetools/ui/RemoteToolsUIServicesFactory.java b/core/org.eclipse.ptp.remote.remotetools.ui/src/org/eclipse/ptp/internal/remote/remotetools/ui/RemoteToolsUIServicesFactory.java
index 0842535..addfb2b 100644
--- a/core/org.eclipse.ptp.remote.remotetools.ui/src/org/eclipse/ptp/internal/remote/remotetools/ui/RemoteToolsUIServicesFactory.java
+++ b/core/org.eclipse.ptp.remote.remotetools.ui/src/org/eclipse/ptp/internal/remote/remotetools/ui/RemoteToolsUIServicesFactory.java
@@ -10,13 +10,15 @@
  *******************************************************************************/
 package org.eclipse.ptp.internal.remote.remotetools.ui;
 
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.ui.IRemoteUIServices;
-import org.eclipse.ptp.remote.ui.IRemoteUIServicesFactory;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.ui.IRemoteUIServices;
+import org.eclipse.remote.ui.IRemoteUIServicesFactory;
 
 public class RemoteToolsUIServicesFactory implements IRemoteUIServicesFactory {
-	/* (non-Javadoc)
-	 * @see org.eclipse.ptp.remote.ui.IRemoteUIServicesFactory#getServices(org.eclipse.ptp.remote.core.IRemoteServices)
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.ui.IRemoteUIServicesFactory#getServices(org.eclipse.remote.core.IRemoteServices)
 	 */
 	public IRemoteUIServices getServices(IRemoteServices services) {
 		return RemoteToolsUIServices.getInstance(services);
diff --git a/core/org.eclipse.ptp.remote.rse.core/META-INF/MANIFEST.MF b/core/org.eclipse.ptp.remote.rse.core/META-INF/MANIFEST.MF
index e62adc8..c8a5736 100644
--- a/core/org.eclipse.ptp.remote.rse.core/META-INF/MANIFEST.MF
+++ b/core/org.eclipse.ptp.remote.rse.core/META-INF/MANIFEST.MF
@@ -6,13 +6,13 @@
 Bundle-Activator: org.eclipse.ptp.internal.remote.rse.core.RSEAdapterCorePlugin
 Bundle-Vendor: %pluginProvider
 Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.ptp.remote.core,
+ org.eclipse.remote.core,
  org.eclipse.core.filesystem,
  org.eclipse.rse.core,
  org.eclipse.rse.subsystems.files.core,
  org.eclipse.rse.services,
  org.eclipse.rse.subsystems.shells.core,
- org.eclipse.ptp.remote.core,
+ org.eclipse.remote.core,
  org.eclipse.dstore.core,
  org.eclipse.rse.connectorservice.dstore,
  org.eclipse.rse.services.dstore,
@@ -22,7 +22,7 @@
  org.eclipse.rse.connectorservice.local,
  org.eclipse.rse.services.local
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.ptp.internal.remote.rse.core;x-internal:=true,
+Export-Package: org.eclipse.ptp.internal.remote.rse.core;x-friends:="org.eclipse.ptp.remote.rse.ui",
  org.eclipse.ptp.internal.remote.rse.core.messages;x-internal:=true,
  org.eclipse.ptp.internal.remote.rse.core.miners;x-internal:=true
 Bundle-Localization: plugin
diff --git a/core/org.eclipse.ptp.remote.rse.core/plugin.xml b/core/org.eclipse.ptp.remote.rse.core/plugin.xml
index 7fd2d9e..b4e336f 100644
--- a/core/org.eclipse.ptp.remote.rse.core/plugin.xml
+++ b/core/org.eclipse.ptp.remote.rse.core/plugin.xml
@@ -2,7 +2,7 @@
 <?eclipse version="3.2"?>
 <plugin>
    <extension
-         point="org.eclipse.ptp.remote.core.remoteServices">
+         point="org.eclipse.remote.core.remoteServices">
       <remoteServices
             class="org.eclipse.ptp.internal.remote.rse.core.RSEServicesFactory"
             id="org.eclipse.ptp.remote.RSERemoteServices"
diff --git a/core/org.eclipse.ptp.remote.rse.core/pom.xml b/core/org.eclipse.ptp.remote.rse.core/pom.xml
index 693e907..e7227a7 100644
--- a/core/org.eclipse.ptp.remote.rse.core/pom.xml
+++ b/core/org.eclipse.ptp.remote.rse.core/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/LocalProcessWrapper.java b/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/LocalProcessWrapper.java
index f0c6a8a..7daf857 100644
--- a/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/LocalProcessWrapper.java
+++ b/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/LocalProcessWrapper.java
@@ -7,33 +7,37 @@
  *
  * Contributors:
  *    IBM Corporation - initial API and implementation
- *******************************************************************************/ 
+ *******************************************************************************/
 
 package org.eclipse.ptp.internal.remote.rse.core;
 
 import java.io.InputStream;
 import java.io.OutputStream;
 
-import org.eclipse.ptp.remote.core.IRemoteProcess;
+import org.eclipse.remote.core.IRemoteProcess;
 
 /**
  * 
  * Implementation of IRemoteProcess that wraps a local process
  * 
  * @author crecoskie
- *
+ * 
  */
 public class LocalProcessWrapper implements IRemoteProcess {
 
 	protected Process fProcess;
 	protected ProcessMonitoringThread fMonitoringThread;
-	
+
 	protected class ProcessMonitoringThread extends Thread {
 		protected Process fProcessToMonitor;
+
 		public ProcessMonitoringThread(Process process) {
 			fProcessToMonitor = process;
 		}
-		/* (non-Javadoc)
+
+		/*
+		 * (non-Javadoc)
+		 * 
 		 * @see java.lang.Thread#run()
 		 */
 		@Override
@@ -45,65 +49,78 @@
 			}
 		}
 	}
-	
-	
+
 	@SuppressWarnings("unused")
-	private LocalProcessWrapper() {		
+	private LocalProcessWrapper() {
 	}
-	
+
 	public LocalProcessWrapper(Process process) {
-		if(process == null) {
+		if (process == null) {
 			throw new IllegalArgumentException("process argument to LocalProcessWrapper must not be null"); //$NON-NLS-1$
 		}
-		
+
 		fProcess = process;
 		fMonitoringThread = new ProcessMonitoringThread(process);
 		fMonitoringThread.start();
 	}
-	
-	/* (non-Javadoc)
+
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see org.eclipse.ptp.remote.core.IRemoteProcess#destroy()
 	 */
 	public void destroy() {
 		fProcess.destroy();
 	}
 
-	/* (non-Javadoc)
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see org.eclipse.ptp.remote.core.IRemoteProcess#exitValue()
 	 */
 	public int exitValue() {
 		return fProcess.exitValue();
 	}
 
-	/* (non-Javadoc)
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see org.eclipse.ptp.remote.core.IRemoteProcess#getErrorStream()
 	 */
 	public InputStream getErrorStream() {
 		return fProcess.getErrorStream();
 	}
 
-	/* (non-Javadoc)
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see org.eclipse.ptp.remote.core.IRemoteProcess#getInputStream()
 	 */
 	public InputStream getInputStream() {
 		return fProcess.getInputStream();
 	}
 
-	/* (non-Javadoc)
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see org.eclipse.ptp.remote.core.IRemoteProcess#getOutputStream()
 	 */
 	public OutputStream getOutputStream() {
 		return fProcess.getOutputStream();
 	}
 
-	/* (non-Javadoc)
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see org.eclipse.ptp.remote.core.IRemoteProcess#waitFor()
 	 */
 	public int waitFor() throws InterruptedException {
 		return fProcess.waitFor();
 	}
 
-	/* (non-Javadoc)
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see org.eclipse.ptp.remote.core.IRemoteProcess#isCompleted()
 	 */
 	public boolean isCompleted() {
diff --git a/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEConnection.java b/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEConnection.java
index 60e5c82..cdbf04e 100644
--- a/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEConnection.java
+++ b/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEConnection.java
@@ -10,8 +10,10 @@
  *******************************************************************************/
 package org.eclipse.ptp.internal.remote.rse.core;
 
+import java.io.IOException;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import org.eclipse.core.runtime.IPath;
@@ -22,13 +24,17 @@
 import org.eclipse.core.runtime.SubMonitor;
 import org.eclipse.dstore.core.model.DataStore;
 import org.eclipse.ptp.internal.remote.rse.core.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionChangeEvent;
-import org.eclipse.ptp.remote.core.IRemoteConnectionChangeListener;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.IUserAuthenticator;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
-import org.eclipse.ptp.remote.core.exception.UnableToForwardPortException;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnectionChangeEvent;
+import org.eclipse.remote.core.IRemoteConnectionChangeListener;
+import org.eclipse.remote.core.IRemoteConnectionWorkingCopy;
+import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteProcess;
+import org.eclipse.remote.core.IRemoteProcessBuilder;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.IUserAuthenticator;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
+import org.eclipse.remote.core.exception.UnableToForwardPortException;
 import org.eclipse.rse.connectorservice.dstore.DStoreConnectorService;
 import org.eclipse.rse.connectorservice.dstore.DStoreConnectorServiceManager;
 import org.eclipse.rse.core.RSECorePlugin;
@@ -91,8 +97,8 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#addConnectionChangeListener
-	 * (org.eclipse.ptp.remote.core.IRemoteConnectionChangeListener)
+	 * @see org.eclipse.remote.core.IRemoteConnection#addConnectionChangeListener
+	 * (org.eclipse.remote.core.IRemoteConnectionChangeListener)
 	 */
 	public void addConnectionChangeListener(IRemoteConnectionChangeListener listener) {
 		fListeners.add(listener);
@@ -101,7 +107,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.IRemoteConnection#close()
+	 * @see org.eclipse.remote.IRemoteConnection#close()
 	 */
 	public void close() {
 		if (fSubSystem != null && fSubSystem.isConnected()) {
@@ -115,7 +121,43 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.IRemoteConnection#forwardLocalPort(int, java.lang.String, int)
+	 * @see java.lang.Comparable#compareTo(java.lang.Object)
+	 */
+	public int compareTo(IRemoteConnection o) {
+		return getName().compareTo(o.getName());
+	}
+
+	/**
+	 * Called to release any resources
+	 */
+	protected void dispose() {
+		fSubSystem.getConnectorService().removeCommunicationsListener(commsListener);
+	}
+
+	/**
+	 * Notify all fListeners when this fConnection's status changes.
+	 * 
+	 * @param event
+	 */
+	public void fireConnectionChangeEvent(final int type) {
+		IRemoteConnectionChangeEvent event = new IRemoteConnectionChangeEvent() {
+			public IRemoteConnection getConnection() {
+				return fConnection;
+			}
+
+			public int getType() {
+				return type;
+			}
+		};
+		for (Object listener : fListeners.getListeners()) {
+			((IRemoteConnectionChangeListener) listener).connectionChanged(event);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.IRemoteConnection#forwardLocalPort(int, java.lang.String, int)
 	 */
 	public void forwardLocalPort(int localPort, String fwdAddress, int fwdPort) throws RemoteConnectionException {
 		throw new UnableToForwardPortException(Messages.RSEConnection_noPortFwd);
@@ -124,7 +166,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.IRemoteConnection#forwardLocalPort(java.lang.String , int,
+	 * @see org.eclipse.remote.IRemoteConnection#forwardLocalPort(java.lang.String , int,
 	 * org.eclipse.core.runtime.IProgressMonitor)
 	 */
 	public int forwardLocalPort(String fwdAddress, int fwdPort, IProgressMonitor monitor) throws RemoteConnectionException {
@@ -134,7 +176,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.IRemoteConnection#forwardRemotePort(int, java.lang.String, int)
+	 * @see org.eclipse.remote.IRemoteConnection#forwardRemotePort(int, java.lang.String, int)
 	 */
 	public void forwardRemotePort(int remotePort, String fwdAddress, int fwdPort) throws RemoteConnectionException {
 		throw new UnableToForwardPortException(Messages.RSEConnection_noPortFwd);
@@ -143,7 +185,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.IRemoteConnection#forwardRemotePort(java.lang. String, int,
+	 * @see org.eclipse.remote.IRemoteConnection#forwardRemotePort(java.lang. String, int,
 	 * org.eclipse.core.runtime.IProgressMonitor)
 	 */
 	public int forwardRemotePort(String fwdAddress, int fwdPort, IProgressMonitor monitor) throws RemoteConnectionException {
@@ -153,7 +195,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.IRemoteConnection#getAddress()
+	 * @see org.eclipse.remote.IRemoteConnection#getAddress()
 	 */
 	public String getAddress() {
 		return fRseHost.getHostName();
@@ -162,13 +204,22 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#getAttributes()
+	 * @see org.eclipse.remote.core.IRemoteConnection#getAttributes()
 	 */
 	public Map<String, String> getAttributes() {
 		// TODO implement
 		return new HashMap<String, String>();
 	}
 
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnection#getCommandShell(int)
+	 */
+	public IRemoteProcess getCommandShell(int flags) throws IOException {
+		throw new IOException("Not currently implemented"); //$NON-NLS-1$
+	}
+
 	/**
 	 * Get the DStore connector service for this fConnection.
 	 * 
@@ -186,7 +237,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#getEnv()
+	 * @see org.eclipse.remote.core.IRemoteConnection#getEnv()
 	 */
 	public Map<String, String> getEnv() {
 		if (fEnv == null) {
@@ -209,7 +260,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#getEnv(java.lang.String)
+	 * @see org.eclipse.remote.core.IRemoteConnection#getEnv(java.lang.String)
 	 */
 	public String getEnv(String name) {
 		if (fEnv == null) {
@@ -218,6 +269,31 @@
 		return fEnv.get(name);
 	}
 
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnection#getFileManager()
+	 */
+	public IRemoteFileManager getFileManager() {
+		return new RSEFileManager(this);
+	}
+
+	/**
+	 * Find the file service subsystem from the IHost
+	 * 
+	 * @param host
+	 * @return
+	 */
+	private IFileServiceSubSystem getFileServiceSubSystem(IHost host) {
+		IRemoteFileSubSystem[] fileSubsystems = RemoteFileUtility.getFileSubSystems(host);
+		for (IRemoteFileSubSystem subsystem : fileSubsystems) {
+			if (subsystem instanceof IFileServiceSubSystem && subsystem.isConnected()) {
+				return (IFileServiceSubSystem) subsystem;
+			}
+		}
+		return null;
+	}
+
 	/**
 	 * Get RSE host object
 	 * 
@@ -230,7 +306,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.IRemoteConnection#getName()
+	 * @see org.eclipse.remote.IRemoteConnection#getName()
 	 */
 	public String getName() {
 		return fRseHost.getAliasName();
@@ -239,7 +315,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#getPort()
+	 * @see org.eclipse.remote.core.IRemoteConnection#getPort()
 	 */
 	public int getPort() {
 		return 0;
@@ -248,7 +324,25 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#getProperty(java.lang.String )
+	 * @see org.eclipse.remote.core.IRemoteConnection#getProcessBuilder(java.util.List)
+	 */
+	public IRemoteProcessBuilder getProcessBuilder(List<String> command) {
+		return new RSEProcessBuilder(this, getFileManager(), command);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnection#getProcessBuilder(java.lang.String[])
+	 */
+	public IRemoteProcessBuilder getProcessBuilder(String... command) {
+		return new RSEProcessBuilder(this, getFileManager(), command);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnection#getProperty(java.lang.String )
 	 */
 	public String getProperty(String key) {
 		loadProperties();
@@ -258,7 +352,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#getRemoteServices()
+	 * @see org.eclipse.remote.core.IRemoteConnection#getRemoteServices()
 	 */
 	/**
 	 * @since 4.0
@@ -279,7 +373,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#getUsername()
+	 * @see org.eclipse.remote.core.IRemoteConnection#getUsername()
 	 */
 	public String getUsername() {
 		return fRseHost.getDefaultUserId();
@@ -288,7 +382,16 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.IRemoteFileManager#getWorkingDirectory(org.eclipse .core.runtime.IProgressMonitor)
+	 * @see org.eclipse.remote.core.IRemoteConnection#getWorkingCopy()
+	 */
+	public IRemoteConnectionWorkingCopy getWorkingCopy() {
+		return new RSEConnectionWorkingCopy(this);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.IRemoteFileManager#getWorkingDirectory(org.eclipse .core.runtime.IProgressMonitor)
 	 */
 	/**
 	 * @since 4.0
@@ -305,19 +408,62 @@
 		return fWorkingDir.toString();
 	}
 
-	/*
-	 * (non-Javadoc)
+	/**
+	 * Initialize the fConnection
 	 * 
-	 * @see org.eclipse.ptp.remote.IRemoteConnection#isOpen()
+	 * @return true if initialization succeeded
 	 */
-	public boolean isOpen() {
-		return fSubSystem != null && fSubSystem.isConnected();
+	protected boolean initialize() {
+		if (fSubSystem == null) {
+			ISubSystem[] subSystems = fRseHost.getSubSystems();
+			for (ISubSystem sub : subSystems) {
+				if (sub instanceof IShellServiceSubSystem) {
+					fSubSystem = sub;
+					break;
+				}
+			}
+			if (fSubSystem == null) {
+				return false;
+			}
+
+			fSubSystem.getConnectorService().addCommunicationsListener(commsListener);
+			fShellService = ((IShellServiceSubSystem) fSubSystem).getShellService();
+		}
+		return true;
 	}
 
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.IRemoteConnection#open()
+	 * @see org.eclipse.remote.IRemoteConnection#isOpen()
+	 */
+	public boolean isOpen() {
+		return fSubSystem != null && fSubSystem.isConnected();
+	}
+
+	private void loadProperties() {
+		if (fProperties == null) {
+			fProperties = new HashMap<String, String>();
+			fProperties.put(FILE_SEPARATOR_PROPERTY, "/"); //$NON-NLS-1$
+			fProperties.put(PATH_SEPARATOR_PROPERTY, ":"); //$NON-NLS-1$
+			fProperties.put(LINE_SEPARATOR_PROPERTY, "\n"); //$NON-NLS-1$
+
+			// check HOME first for UNIX systems
+			String homeDir = getEnv("HOME"); //$NON-NLS-1$
+			if (homeDir == null) {
+				homeDir = getEnv("USERPROFILE"); //$NON-NLS-1$
+			}
+			if (homeDir != null) {
+				IPath homePath = new Path(homeDir);
+				fProperties.put(USER_HOME_PROPERTY, homePath.makeAbsolute().toString());
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.IRemoteConnection#open()
 	 */
 	public void open(IProgressMonitor monitor) throws RemoteConnectionException {
 		if (monitor == null) {
@@ -348,7 +494,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#open(org.eclipse.ptp.remote.core.IUserAuthenticator,
+	 * @see org.eclipse.remote.core.IRemoteConnection#open(org.eclipse.remote.core.IUserAuthenticator,
 	 * org.eclipse.core.runtime.IProgressMonitor)
 	 */
 	public void open(IUserAuthenticator authenticator, IProgressMonitor monitor) throws RemoteConnectionException {
@@ -358,8 +504,8 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#removeConnectionChangeListener
-	 * (org.eclipse.ptp.remote.core.IRemoteConnectionChangeListener)
+	 * @see org.eclipse.remote.core.IRemoteConnection#removeConnectionChangeListener
+	 * (org.eclipse.remote.core.IRemoteConnectionChangeListener)
 	 */
 	public void removeConnectionChangeListener(IRemoteConnectionChangeListener listener) {
 		fListeners.remove(listener);
@@ -368,7 +514,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#removeLocalPortForwarding(int)
+	 * @see org.eclipse.remote.core.IRemoteConnection#removeLocalPortForwarding(int)
 	 */
 	public void removeLocalPortForwarding(int port) throws RemoteConnectionException {
 		// Do nothing
@@ -377,7 +523,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#removeRemotePortForwarding(int)
+	 * @see org.eclipse.remote.core.IRemoteConnection#removeRemotePortForwarding(int)
 	 */
 	public void removeRemotePortForwarding(int port) throws RemoteConnectionException {
 		// Do nothing
@@ -386,73 +532,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.IRemoteConnection#setAddress(java.lang.String)
-	 */
-	public void setAddress(String address) {
-		fRseHost.setHostName(address);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#setAttribute(java.lang. String, java.lang.String)
-	 */
-	public void setAttribute(String key, String value) {
-		// TODO implement
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#setAttributes(java.util .Map)
-	 */
-	/**
-	 * @since 4.1
-	 */
-	public void setAttributes(Map<String, String> attributes) {
-		// TODO Auto-generated method stub
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#setName(java.lang.String)
-	 */
-	public void setName(String name) {
-		fRseHost.setAliasName(name);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#setPassword(java.lang.String )
-	 */
-	public void setPassword(String password) {
-		// TODO is this possible?
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnection#setPort(int)
-	 */
-	public void setPort(int port) {
-		// Not supported
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.IRemoteConnection#setUsername(java.lang.String)
-	 */
-	public void setUsername(String username) {
-		fRseHost.setDefaultUserId(username);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteFileManager#setWorkingDirectory(java .lang.String)
+	 * @see org.eclipse.remote.core.IRemoteFileManager#setWorkingDirectory(java .lang.String)
 	 */
 	/**
 	 * @since 4.0
@@ -467,95 +547,9 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.IRemoteConnection#supportsTCPPortForwarding()
+	 * @see org.eclipse.remote.IRemoteConnection#supportsTCPPortForwarding()
 	 */
 	public boolean supportsTCPPortForwarding() {
 		return false;
 	}
-
-	/**
-	 * Notify all fListeners when this fConnection's status changes.
-	 * 
-	 * @param event
-	 */
-	private void fireConnectionChangeEvent(final int type) {
-		IRemoteConnectionChangeEvent event = new IRemoteConnectionChangeEvent() {
-			public IRemoteConnection getConnection() {
-				return fConnection;
-			}
-
-			public int getType() {
-				return type;
-			}
-		};
-		for (Object listener : fListeners.getListeners()) {
-			((IRemoteConnectionChangeListener) listener).connectionChanged(event);
-		}
-	}
-
-	/**
-	 * Find the file service subsystem from the IHost
-	 * 
-	 * @param host
-	 * @return
-	 */
-	private IFileServiceSubSystem getFileServiceSubSystem(IHost host) {
-		IRemoteFileSubSystem[] fileSubsystems = RemoteFileUtility.getFileSubSystems(host);
-		for (IRemoteFileSubSystem subsystem : fileSubsystems) {
-			if (subsystem instanceof IFileServiceSubSystem && subsystem.isConnected()) {
-				return (IFileServiceSubSystem) subsystem;
-			}
-		}
-		return null;
-	}
-
-	private void loadProperties() {
-		if (fProperties == null) {
-			fProperties = new HashMap<String, String>();
-			fProperties.put(FILE_SEPARATOR_PROPERTY, "/"); //$NON-NLS-1$
-			fProperties.put(PATH_SEPARATOR_PROPERTY, ":"); //$NON-NLS-1$
-			fProperties.put(LINE_SEPARATOR_PROPERTY, "\n"); //$NON-NLS-1$
-
-			// check HOME first for UNIX systems
-			String homeDir = getEnv("HOME"); //$NON-NLS-1$
-			if (homeDir == null) {
-				homeDir = getEnv("USERPROFILE"); //$NON-NLS-1$
-			}
-			if (homeDir != null) {
-				IPath homePath = new Path(homeDir);
-				fProperties.put(USER_HOME_PROPERTY, homePath.makeAbsolute().toString());
-			}
-		}
-	}
-
-	/**
-	 * Called to release any resources
-	 */
-	protected void dispose() {
-		fSubSystem.getConnectorService().removeCommunicationsListener(commsListener);
-	}
-
-	/**
-	 * Initialize the fConnection
-	 * 
-	 * @return true if initialization succeeded
-	 */
-	protected boolean initialize() {
-		if (fSubSystem == null) {
-			ISubSystem[] subSystems = fRseHost.getSubSystems();
-			for (ISubSystem sub : subSystems) {
-				if (sub instanceof IShellServiceSubSystem) {
-					fSubSystem = sub;
-					break;
-				}
-			}
-			if (fSubSystem == null) {
-				return false;
-			}
-
-			fSubSystem.getConnectorService().addCommunicationsListener(commsListener);
-			fShellService = ((IShellServiceSubSystem) fSubSystem).getShellService();
-		}
-		return true;
-	}
 }
diff --git a/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEConnectionManager.java b/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEConnectionManager.java
index 7c9babc..a08b96d 100644
--- a/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEConnectionManager.java
+++ b/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEConnectionManager.java
@@ -11,13 +11,16 @@
 package org.eclipse.ptp.internal.remote.rse.core;
 
 import java.net.URI;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnectionManager;
+import org.eclipse.remote.core.IRemoteConnectionWorkingCopy;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
 import org.eclipse.rse.core.model.IHost;
 import org.eclipse.rse.core.model.ISystemRegistry;
 
@@ -38,7 +41,7 @@
 	 * (non-Javadoc)
 	 * 
 	 * @see
-	 * org.eclipse.ptp.remote.IRemoteConnectionManager#getConnection(java.lang
+	 * org.eclipse.remote.IRemoteConnectionManager#getConnection(java.lang
 	 * .String)
 	 */
 	public IRemoteConnection getConnection(String name) {
@@ -64,7 +67,7 @@
 	 * (non-Javadoc)
 	 * 
 	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteConnectionManager#getConnection(java
+	 * org.eclipse.remote.core.IRemoteConnectionManager#getConnection(java
 	 * .net.URI)
 	 */
 	/**
@@ -84,28 +87,30 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.IRemoteConnectionManager#getConnections()
+	 * @see org.eclipse.remote.IRemoteConnectionManager#getConnections()
 	 */
-	public IRemoteConnection[] getConnections() {
+	public List<IRemoteConnection> getConnections() {
 		refreshConnections();
-		return fConnections.values().toArray(new IRemoteConnection[fConnections.size()]);
+		return new ArrayList<IRemoteConnection>(fConnections.values());
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteConnectionManager#newConnection(java
-	 * .lang.String)
-	 */
 	/**
 	 * @since 5.0
 	 */
-	public IRemoteConnection newConnection(String name) throws RemoteConnectionException {
-		// TODO implement
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnectionManager#newConnection(java.lang.String)
+	 */
+	public IRemoteConnectionWorkingCopy newConnection(String name) throws RemoteConnectionException {
+		// Appears to only be possible through UI
 		return null;
 	}
 
+	public IRemoteConnection createConnection(IHost host) {
+		return new RSEConnection(host, fRemoteServices);
+	}
+
 	/**
 	 * Check for new fConnections
 	 */
@@ -130,8 +135,8 @@
 	 * (non-Javadoc)
 	 * 
 	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteConnectionManager#removeConnection
-	 * (org.eclipse.ptp.remote.core.IRemoteConnection)
+	 * org.eclipse.remote.core.IRemoteConnectionManager#removeConnection
+	 * (org.eclipse.remote.core.IRemoteConnection)
 	 */
 	public void removeConnection(IRemoteConnection conn) {
 		if (conn instanceof RSEConnection) {
diff --git a/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEConnectionWorkingCopy.java b/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEConnectionWorkingCopy.java
new file mode 100644
index 0000000..dfabb0e
--- /dev/null
+++ b/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEConnectionWorkingCopy.java
@@ -0,0 +1,123 @@
+/*******************************************************************************
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ptp.internal.remote.rse.core;
+
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnectionWorkingCopy;
+
+/**
+ * @since 5.0
+ */
+public class RSEConnectionWorkingCopy extends RSEConnection implements IRemoteConnectionWorkingCopy {
+
+	private final RSEConnection fConnection;
+	private boolean fIsDirty;
+
+	public RSEConnectionWorkingCopy(RSEConnection conn) {
+		super(conn.getHost(), conn.getRemoteServices());
+		fConnection = conn;
+		fIsDirty = false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnectionWorkingCopy#getOriginal()
+	 */
+	public IRemoteConnection getOriginal() {
+		return fConnection;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ptp.internal.remote.remotetools.core.RemoteToolsConnection#getWorkingCopy()
+	 */
+	@Override
+	public IRemoteConnectionWorkingCopy getWorkingCopy() {
+		return this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnectionWorkingCopy#isDirty()
+	 */
+	public boolean isDirty() {
+		return fIsDirty;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnectionWorkingCopy#save()
+	 */
+	public IRemoteConnection save() {
+		fIsDirty = false;
+		return fConnection;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnectionWorkingCopy#setAddress(java.lang.String)
+	 */
+	public void setAddress(String address) {
+		fIsDirty = true;
+		fConnection.getHost().setHostName(address);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnectionWorkingCopy#setAttribute(java.lang.String, java.lang.String)
+	 */
+	public void setAttribute(String key, String value) {
+		// Not supported
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnectionWorkingCopy#setName(java.lang.String)
+	 */
+	public void setName(String name) {
+		fIsDirty = true;
+		fConnection.getHost().setAliasName(name);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnectionWorkingCopy#setPassword(java.lang.String)
+	 */
+	public void setPassword(String password) {
+		// Not supported
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnectionWorkingCopy#setPort(int)
+	 */
+	public void setPort(int port) {
+		// Not supported
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.core.IRemoteConnectionWorkingCopy#setUsername(java.lang.String)
+	 */
+	public void setUsername(String userName) {
+		fIsDirty = true;
+		fConnection.getHost().setDefaultUserId(userName);
+	}
+}
diff --git a/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEFileManager.java b/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEFileManager.java
index 4ae3d1b..056c6b3 100644
--- a/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEFileManager.java
+++ b/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEFileManager.java
@@ -18,7 +18,7 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteFileManager;
 import org.eclipse.rse.core.IRSESystemType;
 
 public class RSEFileManager implements IRemoteFileManager {
diff --git a/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEProcess.java b/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEProcess.java
index 981d75f..76cc610 100644
--- a/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEProcess.java
+++ b/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEProcess.java
@@ -29,7 +29,7 @@
 import org.eclipse.dstore.extra.IDomainListener;
 import org.eclipse.ptp.internal.remote.rse.core.messages.Messages;
 import org.eclipse.ptp.internal.remote.rse.core.miners.SpawnerMiner;
-import org.eclipse.ptp.remote.core.AbstractRemoteProcess;
+import org.eclipse.remote.core.AbstractRemoteProcess;
 import org.eclipse.rse.internal.services.local.shells.LocalHostShell;
 import org.eclipse.rse.services.shells.HostShellOutputStream;
 import org.eclipse.rse.services.shells.IHostOutput;
@@ -293,7 +293,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.AbstractRemoteProcess#isCompleted()
+	 * @see org.eclipse.remote.AbstractRemoteProcess#isCompleted()
 	 */
 	@Override
 	public boolean isCompleted() {
diff --git a/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEProcessBuilder.java b/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEProcessBuilder.java
index 71254aa..5fd8a86 100644
--- a/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEProcessBuilder.java
+++ b/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEProcessBuilder.java
@@ -19,10 +19,10 @@
 import org.eclipse.core.filesystem.IFileStore;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.ptp.internal.remote.rse.core.messages.Messages;
-import org.eclipse.ptp.remote.core.AbstractRemoteProcessBuilder;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.core.IRemoteProcess;
+import org.eclipse.remote.core.AbstractRemoteProcessBuilder;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteProcess;
 import org.eclipse.rse.connectorservice.dstore.DStoreConnectorService;
 import org.eclipse.rse.core.subsystems.IConnectorService;
 import org.eclipse.rse.core.subsystems.ISubSystem;
@@ -45,7 +45,7 @@
 	 * @since 4.0
 	 */
 	public RSEProcessBuilder(IRemoteConnection conn, IRemoteFileManager fileMgr, List<String> command) {
-		super(conn, command);
+		super(command);
 		fConnection = (RSEConnection) conn;
 		fFileMgr = (RSEFileManager) fileMgr;
 		fRemoteEnv = new HashMap<String, String>(conn.getEnv());
@@ -75,7 +75,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.AbstractRemoteProcessBuilder#environment()
+	 * @see org.eclipse.remote.AbstractRemoteProcessBuilder#environment()
 	 */
 	@Override
 	public Map<String, String> environment() {
@@ -86,7 +86,7 @@
 	 * (non-Javadoc)
 	 * 
 	 * @see
-	 * org.eclipse.ptp.remote.core.AbstractRemoteProcessBuilder#getSupportedFlags
+	 * org.eclipse.remote.core.AbstractRemoteProcessBuilder#getSupportedFlags
 	 * ()
 	 */
 	@Override
@@ -97,7 +97,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.IRemoteProcessBuilder#start(int)
+	 * @see org.eclipse.remote.IRemoteProcessBuilder#start(int)
 	 */
 	@Override
 	public IRemoteProcess start(int flags) throws IOException {
@@ -123,16 +123,16 @@
 			}
 
 			SpawnerSubsystem subsystem = getSpawnerSubsystem();
-			
-			if(subsystem instanceof LocalSpawnerSubsystem) {
-				Process process = subsystem.spawnLocalRedirected(remoteCmd, initialDir, null, getEnvironment(), new NullProgressMonitor());
+
+			if (subsystem instanceof LocalSpawnerSubsystem) {
+				Process process = subsystem.spawnLocalRedirected(remoteCmd, initialDir, null, getEnvironment(),
+						new NullProgressMonitor());
 				return new LocalProcessWrapper(process);
 			}
-			
+
 			else {
 				if (subsystem != null) {
-					hostShell = subsystem.spawnRedirected(remoteCmd, initialDir, null, getEnvironment(),
-							new NullProgressMonitor());
+					hostShell = subsystem.spawnRedirected(remoteCmd, initialDir, null, getEnvironment(), new NullProgressMonitor());
 
 					if (hostShell == null) {
 						// fall back to old method of using RSE
@@ -175,7 +175,7 @@
 		if (connectorService == null) {
 			// try getting the local connector service
 			connectorService = getLocalConnectorService();
-			if(connectorService == null) {
+			if (connectorService == null) {
 				return null;
 			}
 		}
@@ -197,7 +197,7 @@
 				return (LocalConnectorService) service;
 			}
 		}
-		
+
 		return null;
 	}
 
@@ -221,7 +221,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.core.AbstractRemoteProcessBuilder#directory()
+	 * @see org.eclipse.remote.core.AbstractRemoteProcessBuilder#directory()
 	 */
 	@Override
 	public IFileStore directory() {
diff --git a/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEServices.java b/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEServices.java
index 06beb9e..faa0537 100644
--- a/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEServices.java
+++ b/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEServices.java
@@ -10,19 +10,13 @@
  *******************************************************************************/
 package org.eclipse.ptp.internal.remote.rse.core;
 
-import java.io.IOException;
-import java.util.List;
-
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.SubMonitor;
 import org.eclipse.ptp.internal.remote.rse.core.messages.Messages;
-import org.eclipse.ptp.remote.core.AbstractRemoteServices;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.core.IRemoteProcess;
-import org.eclipse.ptp.remote.core.IRemoteProcessBuilder;
-import org.eclipse.ptp.remote.core.IRemoteServicesDescriptor;
+import org.eclipse.remote.core.AbstractRemoteServices;
+import org.eclipse.remote.core.IRemoteConnectionManager;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.IRemoteServicesDescriptor;
 import org.eclipse.rse.core.RSECorePlugin;
 import org.eclipse.rse.core.model.ISystemRegistry;
 
@@ -67,17 +61,17 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteServices#getCommandShell(org.eclipse.ptp.remote.core.IRemoteConnection, int)
+	 * @see org.eclipse.remote.core.IRemoteServices#getCapabilities()
 	 */
-	public IRemoteProcess getCommandShell(IRemoteConnection conn, int flags) throws IOException {
-		throw new IOException("Not currently implemented"); //$NON-NLS-1$
+	public int getCapabilities() {
+		return IRemoteServices.CAPABILITY_ADD_CONNECTIONS | IRemoteServices.CAPABILITY_REMOVE_CONNECTIONS;
 	}
 
 	/*
 	 * (non-Javadoc)
 	 * 
 	 * @see
-	 * org.eclipse.ptp.remote.IRemoteServicesDelegate#getConnectionManager()
+	 * org.eclipse.remote.IRemoteServicesDelegate#getConnectionManager()
 	 */
 	public IRemoteConnectionManager getConnectionManager() {
 		if (!fInitialized) {
@@ -92,60 +86,12 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.IRemoteServicesDelegate#getFileManager(org.eclipse
-	 * .ptp.remote.IRemoteConnection)
-	 */
-	public IRemoteFileManager getFileManager(IRemoteConnection conn) {
-		if (!fInitialized) {
-			return null;
-		}
-
-		if (!(conn instanceof RSEConnection)) {
-			return null;
-		}
-		return new RSEFileManager((RSEConnection) conn);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.IRemoteServicesDelegate#getProcessBuilder(org.
-	 * eclipse.ptp.remote.IRemoteConnection, java.util.List)
-	 */
-	public IRemoteProcessBuilder getProcessBuilder(IRemoteConnection conn, List<String> command) {
-		if (!fInitialized) {
-			return null;
-		}
-
-		return new RSEProcessBuilder(conn, getFileManager(conn), command);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.IRemoteServicesDelegate#getProcessBuilder(org.
-	 * eclipse.ptp.remote.IRemoteConnection, java.lang.String[])
-	 */
-	public IRemoteProcessBuilder getProcessBuilder(IRemoteConnection conn, String... command) {
-		if (!fInitialized) {
-			return null;
-		}
-
-		return new RSEProcessBuilder(conn, getFileManager(conn), command);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteServices#initialize()
+	 * @see org.eclipse.remote.core.IRemoteServices#initialize()
 	 */
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteServices#initialize(org.eclipse.core.runtime.IProgressMonitor)
+	 * @see org.eclipse.remote.core.IRemoteServices#initialize(org.eclipse.core.runtime.IProgressMonitor)
 	 */
 	public boolean initialize(IProgressMonitor monitor) {
 		if (!fInitialized) {
diff --git a/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEServicesFactory.java b/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEServicesFactory.java
index 7e8d172..18ca640 100644
--- a/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEServicesFactory.java
+++ b/core/org.eclipse.ptp.remote.rse.core/src/org/eclipse/ptp/internal/remote/rse/core/RSEServicesFactory.java
@@ -10,15 +10,17 @@
  *******************************************************************************/
 package org.eclipse.ptp.internal.remote.rse.core;
 
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.IRemoteServicesDescriptor;
-import org.eclipse.ptp.remote.core.IRemoteServicesFactory;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.IRemoteServicesDescriptor;
+import org.eclipse.remote.core.IRemoteServicesFactory;
 
 public class RSEServicesFactory implements IRemoteServicesFactory {
 	private static RSEServices services = null;
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ptp.remote.core.IRemoteServicesFactory#getServices(org.eclipse.ptp.remote.core.IRemoteServicesDescriptor)
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.core.IRemoteServicesFactory#getServices(org.eclipse.remote.core.IRemoteServicesDescriptor)
 	 */
 	public IRemoteServices getServices(IRemoteServicesDescriptor descriptor) {
 		if (services == null) {
diff --git a/core/org.eclipse.ptp.remote.rse.ui/META-INF/MANIFEST.MF b/core/org.eclipse.ptp.remote.rse.ui/META-INF/MANIFEST.MF
index f492b34..88ef320 100644
--- a/core/org.eclipse.ptp.remote.rse.ui/META-INF/MANIFEST.MF
+++ b/core/org.eclipse.ptp.remote.rse.ui/META-INF/MANIFEST.MF
@@ -7,8 +7,8 @@
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
  org.eclipse.ptp.remote.rse.core,
- org.eclipse.ptp.remote.core,
- org.eclipse.ptp.remote.ui,
+ org.eclipse.remote.core,
+ org.eclipse.remote.ui,
  org.eclipse.rse.core,
  org.eclipse.rse.files.ui,
  org.eclipse.rse.subsystems.files.core,
diff --git a/core/org.eclipse.ptp.remote.rse.ui/plugin.xml b/core/org.eclipse.ptp.remote.rse.ui/plugin.xml
index 2515c9f..ca9f904 100644
--- a/core/org.eclipse.ptp.remote.rse.ui/plugin.xml
+++ b/core/org.eclipse.ptp.remote.rse.ui/plugin.xml
@@ -2,7 +2,7 @@
 <?eclipse version="3.2"?>
 <plugin>
    <extension
-         point="org.eclipse.ptp.remote.ui.remoteUIServices">
+         point="org.eclipse.remote.ui.remoteUIServices">
       <remoteUIServices
             class="org.eclipse.ptp.internal.remote.rse.ui.RSEUIServicesFactory"
             id="org.eclipse.ptp.remote.RSERemoteServices"
diff --git a/core/org.eclipse.ptp.remote.rse.ui/pom.xml b/core/org.eclipse.ptp.remote.rse.ui/pom.xml
index ad4bb1d..6822fe4 100644
--- a/core/org.eclipse.ptp.remote.rse.ui/pom.xml
+++ b/core/org.eclipse.ptp.remote.rse.ui/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/core/org.eclipse.ptp.remote.rse.ui/src/org/eclipse/ptp/internal/remote/rse/ui/RSEUIConnectionManager.java b/core/org.eclipse.ptp.remote.rse.ui/src/org/eclipse/ptp/internal/remote/rse/ui/RSEUIConnectionManager.java
index 79420e0..06cc5c7 100644
--- a/core/org.eclipse.ptp.remote.rse.ui/src/org/eclipse/ptp/internal/remote/rse/ui/RSEUIConnectionManager.java
+++ b/core/org.eclipse.ptp.remote.rse.ui/src/org/eclipse/ptp/internal/remote/rse/ui/RSEUIConnectionManager.java
@@ -10,94 +10,61 @@
  *******************************************************************************/
 package org.eclipse.ptp.internal.remote.rse.ui;
 
-import java.util.Arrays;
-import java.util.Comparator;
+import java.util.Set;
 
 import org.eclipse.ptp.internal.remote.rse.core.RSEConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.ui.AbstractRemoteUIConnectionManager;
+import org.eclipse.remote.core.IRemoteConnectionWorkingCopy;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.ui.AbstractRemoteUIConnectionManager;
+import org.eclipse.remote.ui.IRemoteUIConnectionWizard;
+import org.eclipse.rse.core.model.IHost;
 import org.eclipse.rse.ui.actions.SystemNewConnectionAction;
 import org.eclipse.swt.widgets.Shell;
 
 public class RSEUIConnectionManager extends AbstractRemoteUIConnectionManager {
-	private SystemNewConnectionAction action;
-	private final RSEConnectionManager manager;
+	private SystemNewConnectionAction fNewConnAction;
+	private final RSEConnectionManager fConnManager;
 
 	public RSEUIConnectionManager(IRemoteServices services) {
-		this.manager = (RSEConnectionManager) services.getConnectionManager();
+		this.fConnManager = (RSEConnectionManager) services.getConnectionManager();
 	}
 
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.IRemoteConnectionManager#newConnection()
+	 * @see org.eclipse.remote.ui.IRemoteUIConnectionManager#getConnectionWizard(org.eclipse.swt.widgets.Shell)
 	 */
-	public IRemoteConnection newConnection(Shell shell) {
-		IRemoteConnection[] oldConns = manager.getConnections();
+	public IRemoteUIConnectionWizard getConnectionWizard(final Shell shell) {
+		return new IRemoteUIConnectionWizard() {
+			public IRemoteConnectionWorkingCopy open() {
+				if (fNewConnAction == null) {
+					fNewConnAction = new SystemNewConnectionAction(shell, false, false, null);
+				}
 
-		if (action == null) {
-			action = new SystemNewConnectionAction(shell, false, false, null);
-		}
+				try {
+					fNewConnAction.run();
+				} catch (Exception e) {
+					// Ignore
+				}
 
-		try {
-			action.run();
-		} catch (Exception e) {
-			// Ignore
-		}
-
-		manager.refreshConnections();
-
-		/*
-		 * Try to work out which is the new connection. Assumes that connections
-		 * can only be created, NOT removed.
-		 */
-		IRemoteConnection[] newConns = manager.getConnections();
-
-		if (newConns.length <= oldConns.length) {
-			return null;
-		}
-
-		Arrays.sort(oldConns, new Comparator<IRemoteConnection>() {
-			public int compare(IRemoteConnection c1, IRemoteConnection c2) {
-				return c1.getName().compareToIgnoreCase(c2.getName());
+				Object value = fNewConnAction.getValue();
+				if (value != null && value instanceof IHost) {
+					return fConnManager.createConnection((IHost) value).getWorkingCopy();
+				}
+				return null;
 			}
-		});
-		Arrays.sort(newConns, new Comparator<IRemoteConnection>() {
-			public int compare(IRemoteConnection c1, IRemoteConnection c2) {
-				return c1.getName().compareToIgnoreCase(c2.getName());
+
+			public void setInvalidConnectionNames(Set<String> names) {
+				// Not supported
 			}
-		});
-		for (int i = 0; i < oldConns.length; i++) {
-			if (!oldConns[i].equals(newConns[i])) {
-				return newConns[i];
+
+			public void setConnectionName(String name) {
+				// Not supported
 			}
-		}
 
-		return newConns[newConns.length - 1];
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.ui.IRemoteUIConnectionManager#newConnection(org
-	 * .eclipse.swt.widgets.Shell, java.lang.String[], java.lang.String[])
-	 */
-	public IRemoteConnection newConnection(Shell shell, String[] attrHints, String[] attrHintValues) {
-		return newConnection(shell);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.ui.IRemoteUIConnectionManager#updateConnection
-	 * (org.eclipse.swt.widgets.Shell,
-	 * org.eclipse.ptp.remote.core.IRemoteConnection)
-	 */
-	public void updateConnection(Shell shell, IRemoteConnection connection) {
-		// TODO Auto-generated method stub
-
+			public void setConnection(IRemoteConnectionWorkingCopy connection) {
+				// Not supported
+			}
+		};
 	}
 }
diff --git a/core/org.eclipse.ptp.remote.rse.ui/src/org/eclipse/ptp/internal/remote/rse/ui/RSEUIFileManager.java b/core/org.eclipse.ptp.remote.rse.ui/src/org/eclipse/ptp/internal/remote/rse/ui/RSEUIFileManager.java
index 994e61f..0c9b457 100644
--- a/core/org.eclipse.ptp.remote.rse.ui/src/org/eclipse/ptp/internal/remote/rse/ui/RSEUIFileManager.java
+++ b/core/org.eclipse.ptp.remote.rse.ui/src/org/eclipse/ptp/internal/remote/rse/ui/RSEUIFileManager.java
@@ -11,15 +11,16 @@
  *******************************************************************************/
 package org.eclipse.ptp.internal.remote.rse.ui;
 
-import java.util.Vector;
+import java.util.ArrayList;
+import java.util.List;
 
 import org.eclipse.core.runtime.IAdapterFactory;
 import org.eclipse.jface.window.Window;
 import org.eclipse.ptp.internal.remote.rse.core.RSEConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.ui.IRemoteUIFileManager;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnectionManager;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.ui.IRemoteUIFileManager;
 import org.eclipse.rse.core.filters.ISystemFilterReference;
 import org.eclipse.rse.core.model.IHost;
 import org.eclipse.rse.core.model.SystemChildrenContentsType;
@@ -43,7 +44,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.IRemoteFileManager#browseDirectory(org.eclipse .swt.widgets.Shell, java.lang.String,
+	 * @see org.eclipse.remote.IRemoteFileManager#browseDirectory(org.eclipse .swt.widgets.Shell, java.lang.String,
 	 * java.lang.String)
 	 */
 	public String browseDirectory(Shell shell, String message, String filterPath, int flags) {
@@ -86,7 +87,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.IRemoteFileManager#browseFile(org.eclipse.swt. widgets.Shell, java.lang.String, java.lang.String)
+	 * @see org.eclipse.remote.IRemoteFileManager#browseFile(org.eclipse.swt. widgets.Shell, java.lang.String, java.lang.String)
 	 */
 	public String browseFile(Shell shell, String message, String filterPath, int flags) {
 		SystemRemoteFileDialog dlg = new SystemRemoteFileDialog(shell, message, connHost);
@@ -107,9 +108,9 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.IRemoteFileManager#browseFile(org.eclipse.swt. widgets.Shell, java.lang.String, java.lang.String)
+	 * @see org.eclipse.remote.IRemoteFileManager#browseFile(org.eclipse.swt. widgets.Shell, java.lang.String, java.lang.String)
 	 */
-	public String[] browseFiles(Shell shell, String message, String filterPath, int flags) {
+	public List<String> browseFiles(Shell shell, String message, String filterPath, int flags) {
 		SystemRemoteFileDialog dlg = new SystemRemoteFileDialog(shell, message, connHost);
 		dlg.setDefaultSystemConnection(connHost, onlyConnection);
 		dlg.setBlockOnOpen(true);
@@ -118,18 +119,13 @@
 			connHost = dlg.getSelectedConnection();
 			connection = connMgr.getConnection(connHost.getName());
 			Object retObj[] = dlg.getSelectedObjects();
-			Vector<String> selections = new Vector<String>(retObj.length);
+			List<String> selections = new ArrayList<String>(retObj.length);
 			for (Object element : retObj) {
 				if (element instanceof IRemoteFile) {
 					selections.add(((IRemoteFile) element).getAbsolutePath());
 				}
 			}
-			String remotePaths[] = new String[selections.size()];
-			int i = 0;
-			for (String s : selections) {
-				remotePaths[i++] = s;
-			}
-			return remotePaths;
+			return selections;
 		}
 		return null;
 	}
@@ -137,7 +133,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.ui.IRemoteUIFileManager#getConnection()
+	 * @see org.eclipse.remote.ui.IRemoteUIFileManager#getConnection()
 	 */
 	public IRemoteConnection getConnection() {
 		return connection;
@@ -146,7 +142,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.ui.IRemoteUIFileManager#setConnection(org.eclipse .ptp.remote.core.IRemoteConnection)
+	 * @see org.eclipse.remote.ui.IRemoteUIFileManager#setConnection(org.eclipse .remote.core.IRemoteConnection)
 	 */
 	public void setConnection(IRemoteConnection connection) {
 		this.connection = connection;
@@ -156,7 +152,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.remote.ui.IRemoteUIFileManager#showConnections(boolean)
+	 * @see org.eclipse.remote.ui.IRemoteUIFileManager#showConnections(boolean)
 	 */
 	public void showConnections(boolean enable) {
 		onlyConnection = !enable;
diff --git a/core/org.eclipse.ptp.remote.rse.ui/src/org/eclipse/ptp/internal/remote/rse/ui/RSEUIServices.java b/core/org.eclipse.ptp.remote.rse.ui/src/org/eclipse/ptp/internal/remote/rse/ui/RSEUIServices.java
index 3434b68..90e1827 100644
--- a/core/org.eclipse.ptp.remote.rse.ui/src/org/eclipse/ptp/internal/remote/rse/ui/RSEUIServices.java
+++ b/core/org.eclipse.ptp.remote.rse.ui/src/org/eclipse/ptp/internal/remote/rse/ui/RSEUIServices.java
@@ -10,26 +10,29 @@
  *******************************************************************************/
 package org.eclipse.ptp.internal.remote.rse.ui;
 
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.ui.IRemoteUIConnectionManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIFileManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIServices;
-
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.ui.IRemoteUIConnectionManager;
+import org.eclipse.remote.ui.IRemoteUIFileManager;
+import org.eclipse.remote.ui.IRemoteUIServices;
 
 public class RSEUIServices implements IRemoteUIServices {
 	private static RSEUIServices fInstance = null;
-	
+
 	private final IRemoteServices fServices;
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.ptp.remote.ui.IRemoteUIServicesDescriptor#getId()
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.ui.IRemoteUIServicesDescriptor#getId()
 	 */
 	public String getId() {
 		return fServices.getId();
 	}
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.ptp.remote.ui.IRemoteUIServicesDescriptor#getName()
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.ui.IRemoteUIServicesDescriptor#getName()
 	 */
 	public String getName() {
 		return fServices.getName();
@@ -46,20 +49,24 @@
 		}
 		return fInstance;
 	}
-	
+
 	public RSEUIServices(IRemoteServices services) {
 		fServices = services;
 	}
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.ptp.remote.ui.IRemoteUIServicesDescriptor#getUIConnectionManager()
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.ui.IRemoteUIServicesDescriptor#getUIConnectionManager()
 	 */
 	public IRemoteUIConnectionManager getUIConnectionManager() {
 		return new RSEUIConnectionManager(fServices);
 	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ptp.remote.ui.IRemoteUIServicesDescriptor#getUIFileManager()
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.ui.IRemoteUIServicesDescriptor#getUIFileManager()
 	 */
 	public IRemoteUIFileManager getUIFileManager() {
 		return new RSEUIFileManager(fServices);
diff --git a/core/org.eclipse.ptp.remote.rse.ui/src/org/eclipse/ptp/internal/remote/rse/ui/RSEUIServicesFactory.java b/core/org.eclipse.ptp.remote.rse.ui/src/org/eclipse/ptp/internal/remote/rse/ui/RSEUIServicesFactory.java
index dff4ba6..aafc4c8 100644
--- a/core/org.eclipse.ptp.remote.rse.ui/src/org/eclipse/ptp/internal/remote/rse/ui/RSEUIServicesFactory.java
+++ b/core/org.eclipse.ptp.remote.rse.ui/src/org/eclipse/ptp/internal/remote/rse/ui/RSEUIServicesFactory.java
@@ -10,13 +10,15 @@
  *******************************************************************************/
 package org.eclipse.ptp.internal.remote.rse.ui;
 
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.ui.IRemoteUIServices;
-import org.eclipse.ptp.remote.ui.IRemoteUIServicesFactory;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.ui.IRemoteUIServices;
+import org.eclipse.remote.ui.IRemoteUIServicesFactory;
 
 public class RSEUIServicesFactory implements IRemoteUIServicesFactory {
-	/* (non-Javadoc)
-	 * @see org.eclipse.ptp.remote.ui.IRemoteUIServicesFactory#getServices(org.eclipse.ptp.remote.core.IRemoteServices)
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.remote.ui.IRemoteUIServicesFactory#getServices(org.eclipse.remote.core.IRemoteServices)
 	 */
 	public IRemoteUIServices getServices(IRemoteServices services) {
 		return RSEUIServices.getInstance(services);
diff --git a/core/org.eclipse.ptp.remote.server.core/META-INF/MANIFEST.MF b/core/org.eclipse.ptp.remote.server.core/META-INF/MANIFEST.MF
index 99d73fc..7182c5c 100644
--- a/core/org.eclipse.ptp.remote.server.core/META-INF/MANIFEST.MF
+++ b/core/org.eclipse.ptp.remote.server.core/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.ptp.remote.server.core;singleton:=true
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 2.0.0.qualifier
 Bundle-Activator: org.eclipse.ptp.internal.remote.server.core.Activator
 Bundle-Vendor: %pluginProvider
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.core.filesystem,
  org.eclipse.core.variables,
- org.eclipse.ptp.remote.core
+ org.eclipse.remote.core
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.ptp.internal.remote.server.core;x-internal:=true,
diff --git a/core/org.eclipse.ptp.remote.server.core/plugin.xml b/core/org.eclipse.ptp.remote.server.core/plugin.xml
index 1278ea0..899bb4a 100644
--- a/core/org.eclipse.ptp.remote.server.core/plugin.xml
+++ b/core/org.eclipse.ptp.remote.server.core/plugin.xml
@@ -2,5 +2,20 @@
 <?eclipse version="3.4"?>
 <plugin>
    <extension-point id="remoteServer" name="Remote Server" schema="schema/remoteServer.exsd"/>
+   <extension
+         point="org.eclipse.core.variables.valueVariables">
+      <variable
+            description="payload"
+            initialValue="&quot;&quot;"
+            name="payload"
+            readOnly="false">
+      </variable>
+      <variable
+            description="payload_args"
+            initialValue="&quot;&quot;"
+            name="payload_args"
+            readOnly="false">
+      </variable>
+   </extension>
 
 </plugin>
diff --git a/core/org.eclipse.ptp.remote.server.core/pom.xml b/core/org.eclipse.ptp.remote.server.core/pom.xml
index 55aa715..dd38ad3 100644
--- a/core/org.eclipse.ptp.remote.server.core/pom.xml
+++ b/core/org.eclipse.ptp.remote.server.core/pom.xml
@@ -6,11 +6,11 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.remote.server.core</artifactId>
-  <version>1.0.0-SNAPSHOT</version>
+  <version>2.0.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/core/org.eclipse.ptp.remote.server.core/src/org/eclipse/ptp/remote/server/core/AbstractRemoteServerRunner.java b/core/org.eclipse.ptp.remote.server.core/src/org/eclipse/ptp/remote/server/core/AbstractRemoteServerRunner.java
index cc02cc7..81883ac 100644
--- a/core/org.eclipse.ptp.remote.server.core/src/org/eclipse/ptp/remote/server/core/AbstractRemoteServerRunner.java
+++ b/core/org.eclipse.ptp.remote.server.core/src/org/eclipse/ptp/remote/server/core/AbstractRemoteServerRunner.java
@@ -37,11 +37,11 @@
 import org.eclipse.ptp.internal.remote.server.core.Activator;
 import org.eclipse.ptp.internal.remote.server.core.DebugUtil;
 import org.eclipse.ptp.internal.remote.server.core.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.core.IRemoteProcess;
-import org.eclipse.ptp.remote.core.IRemoteProcessBuilder;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteProcess;
+import org.eclipse.remote.core.IRemoteProcessBuilder;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
 import org.osgi.framework.Bundle;
 
 /**
@@ -122,6 +122,13 @@
 	}
 
 	/**
+	 * @since 2.0
+	 */
+	public boolean serverIsRunning() {
+		return fServerState == ServerState.RUNNING;
+	}
+
+	/**
 	 * Get the launch command for this server
 	 * 
 	 * @return launch command
@@ -155,6 +162,7 @@
 	 * Get the remote connection used to launch the server
 	 * 
 	 * @return remote connection
+	 * @since 2.0
 	 */
 	public IRemoteConnection getRemoteConnection() {
 		return fRemoteConnection;
@@ -314,6 +322,7 @@
 	 * 
 	 * @param conn
 	 *            remote connection
+	 * @since 2.0
 	 */
 	public void setRemoteConnection(IRemoteConnection conn) {
 		fRemoteConnection = conn;
@@ -423,63 +432,57 @@
 	 */
 	public void startServer(IProgressMonitor monitor) throws IOException {
 		SubMonitor subMon = SubMonitor.convert(monitor, 100);
-		try {
-			if (fRemoteConnection != null && fServerState != ServerState.RUNNING) {
-				if (!doServerStarting(subMon.newChild(10))) {
-					throw new IOException(Messages.AbstractRemoteServerRunner_serverRestartAborted);
+		if (fRemoteConnection != null && fServerState != ServerState.RUNNING) {
+			if (!doServerStarting(subMon.newChild(10))) {
+				throw new IOException(Messages.AbstractRemoteServerRunner_serverRestartAborted);
+			}
+			setServerState(ServerState.STARTING);
+			if (!fRemoteConnection.isOpen()) {
+				try {
+					fRemoteConnection.open(subMon.newChild(10));
+				} catch (RemoteConnectionException e) {
+					throw new IOException(e.getMessage());
 				}
-				setServerState(ServerState.STARTING);
+				if (subMon.isCanceled()) {
+					return;
+				}
 				if (!fRemoteConnection.isOpen()) {
-					try {
-						fRemoteConnection.open(subMon.newChild(10));
-					} catch (RemoteConnectionException e) {
-						throw new IOException(e.getMessage());
-					}
-					if (subMon.isCanceled()) {
-						return;
-					}
-					if (!fRemoteConnection.isOpen()) {
-						throw new IOException(Messages.AbstractRemoteServerRunner_unableToOpenConnection);
-					}
-				}
-
-				/*
-				 * Check if the launch command is valid
-				 */
-				if ((getVerifyLaunchCommand() != null && getVerifyLaunchCommand().length() != 0)
-						&& !isValidCommand(getVerifyLaunchCommand(), getVerifyLaunchPattern(), subMon.newChild(10))) {
-					if (getVerifyLaunchFailMessage() != null && getVerifyLaunchFailMessage().length() != 0) {
-						setServerState(ServerState.STOPPED);
-						throw new IOException(NLS.bind(getVerifyLaunchFailMessage(),
-								new Object[] { fServerName, fRemoteConnection.getName() }));
-					}
-					setServerState(ServerState.STOPPED);
-					throw new IOException(Messages.AbstractRemoteServerRunner_cannotRunServerMissingRequirements);
-				}
-
-				/*
-				 * Check if the unpack command is valid
-				 */
-				if ((getVerifyUnpackCommand() != null && getVerifyUnpackCommand().length() != 0)
-						&& !isValidCommand(getVerifyUnpackCommand(), getVerifyUnpackPattern(), subMon.newChild(10))) {
-					if (getVerifyUnpackFailMessage() != null && getVerifyUnpackFailMessage().length() != 0) {
-						setServerState(ServerState.STOPPED);
-						throw new IOException(NLS.bind(getVerifyUnpackFailMessage(),
-								new Object[] { fServerName, fRemoteConnection.getName() }));
-					}
-					setServerState(ServerState.STOPPED);
-					throw new IOException(Messages.AbstractRemoteServerRunner_cannotRunUnpack);
-				}
-
-				fStatus = Status.OK_STATUS;
-
-				if (!subMon.isCanceled()) {
-					schedule();
+					throw new IOException(Messages.AbstractRemoteServerRunner_unableToOpenConnection);
 				}
 			}
-		} finally {
-			if (monitor != null) {
-				monitor.done();
+
+			/*
+			 * Check if the launch command is valid
+			 */
+			if ((getVerifyLaunchCommand() != null && getVerifyLaunchCommand().length() != 0)
+					&& !isValidCommand(getVerifyLaunchCommand(), getVerifyLaunchPattern(), subMon.newChild(10))) {
+				if (getVerifyLaunchFailMessage() != null && getVerifyLaunchFailMessage().length() != 0) {
+					setServerState(ServerState.STOPPED);
+					throw new IOException(NLS.bind(getVerifyLaunchFailMessage(),
+							new Object[] { fServerName, fRemoteConnection.getName() }));
+				}
+				setServerState(ServerState.STOPPED);
+				throw new IOException(Messages.AbstractRemoteServerRunner_cannotRunServerMissingRequirements);
+			}
+
+			/*
+			 * Check if the unpack command is valid
+			 */
+			if ((getVerifyUnpackCommand() != null && getVerifyUnpackCommand().length() != 0)
+					&& !isValidCommand(getVerifyUnpackCommand(), getVerifyUnpackPattern(), subMon.newChild(10))) {
+				if (getVerifyUnpackFailMessage() != null && getVerifyUnpackFailMessage().length() != 0) {
+					setServerState(ServerState.STOPPED);
+					throw new IOException(NLS.bind(getVerifyUnpackFailMessage(),
+							new Object[] { fServerName, fRemoteConnection.getName() }));
+				}
+				setServerState(ServerState.STOPPED);
+				throw new IOException(Messages.AbstractRemoteServerRunner_cannotRunUnpack);
+			}
+
+			fStatus = Status.OK_STATUS;
+
+			if (!subMon.isCanceled()) {
+				schedule();
 			}
 		}
 	}
@@ -493,30 +496,23 @@
 	 */
 	public void updateServer(IProgressMonitor monitor) throws IOException {
 		SubMonitor subMon = SubMonitor.convert(monitor, 100);
-		try {
-			if (fRemoteConnection != null) {
-				if (!fRemoteConnection.isOpen()) {
-					try {
-						fRemoteConnection.open(subMon.newChild(20));
-					} catch (RemoteConnectionException e) {
-						throw new IOException(e.getMessage());
-					}
-					if (subMon.isCanceled()) {
-						return;
-					}
-					if (!fRemoteConnection.isOpen()) {
-						throw new IOException(Messages.AbstractRemoteServerRunner_unableToOpenConnection);
-					}
+		if (fRemoteConnection != null) {
+			if (!fRemoteConnection.isOpen()) {
+				try {
+					fRemoteConnection.open(subMon.newChild(20));
+				} catch (RemoteConnectionException e) {
+					throw new IOException(e.getMessage());
 				}
+				if (subMon.isCanceled()) {
+					return;
+				}
+				if (!fRemoteConnection.isOpen()) {
+					throw new IOException(Messages.AbstractRemoteServerRunner_unableToOpenConnection);
+				}
+			}
 
-				doUpdate(subMon.newChild(80));
-			}
-		} finally {
-			if (monitor != null) {
-				monitor.done();
-			}
+			doUpdate(subMon.newChild(80));
 		}
-
 	}
 
 	/**
@@ -528,22 +524,16 @@
 	 */
 	public IStatus waitForServerFinish(IProgressMonitor monitor) {
 		SubMonitor subMon = SubMonitor.convert(monitor, 100);
-		try {
-			while (getServerState() != ServerState.STOPPED && !subMon.isCanceled()) {
-				synchronized (this) {
-					try {
-						wait(100);
-					} catch (InterruptedException e) {
-						// Ignore
-					}
+		while (getServerState() != ServerState.STOPPED && !subMon.isCanceled()) {
+			synchronized (this) {
+				try {
+					wait(100);
+				} catch (InterruptedException e) {
+					// Ignore
 				}
 			}
-			return fStatus;
-		} finally {
-			if (monitor != null) {
-				monitor.done();
-			}
 		}
+		return fStatus;
 	}
 
 	/**
@@ -577,25 +567,21 @@
 	 */
 	public void waitForServerStart(IProgressMonitor monitor) {
 		SubMonitor subMon = SubMonitor.convert(monitor, 100);
-		try {
-			while (getServerState() == ServerState.STARTING && !subMon.isCanceled()) {
-				synchronized (this) {
-					try {
-						wait(100);
-					} catch (InterruptedException e) {
-						// Ignore
-					}
+		while (getServerState() == ServerState.STARTING && !subMon.isCanceled()) {
+			synchronized (this) {
+				try {
+					wait(100);
+				} catch (InterruptedException e) {
+					// Ignore
 				}
 			}
-		} finally {
-			if (monitor != null) {
-				monitor.done();
-			}
 		}
 	}
 
 	/**
 	 * Check if the payload exists on the remote machine, and if not, or if it has changed then upload a copy.
+	 * This function is synchronized in order to avoid interference of multiple threads trying to
+	 * update the payload simultaneously (see bug 411830).
 	 * 
 	 * @param conn
 	 *            remote connection
@@ -607,7 +593,7 @@
 	 * @throws IOException
 	 *             thrown if any errors occur
 	 */
-	private boolean checkAndUploadPayload(IFileStore directory, IProgressMonitor monitor) throws IOException {
+	private synchronized boolean checkAndUploadPayload(IFileStore directory, IProgressMonitor monitor) throws IOException {
 		SubMonitor subMon = SubMonitor.convert(monitor, 100);
 		try {
 			IFileStore server = directory.getChild(getPayload());
@@ -630,10 +616,6 @@
 			return false;
 		} catch (Exception e) {
 			throw new IOException(e.getMessage());
-		} finally {
-			if (monitor != null) {
-				monitor.done();
-			}
 		}
 	}
 
@@ -643,7 +625,7 @@
 			/*
 			 * Check if the remote file exists or is a different size to the local version and copy over if required.
 			 */
-			IRemoteFileManager fileManager = fRemoteConnection.getRemoteServices().getFileManager(fRemoteConnection);
+			IRemoteFileManager fileManager = fRemoteConnection.getFileManager();
 			IFileStore directory = fileManager.getResource(getWorkingDir());
 			/*
 			 * Create the directory if it doesn't exist (has no effect if the directory already exists). Also, check if a file of
@@ -660,10 +642,6 @@
 			return directory;
 		} catch (CoreException e) {
 			throw new IOException(e.getMessage());
-		} finally {
-			if (monitor != null) {
-				monitor.done();
-			}
 		}
 
 	}
@@ -677,38 +655,34 @@
 	 */
 	private boolean isValidCommand(String command, String verifyPattern, IProgressMonitor monitor) throws IOException {
 		SubMonitor subMon = SubMonitor.convert(monitor, 100);
+		// compile the pattern for search
+		Pattern pattern = Pattern.compile(verifyPattern);
+
+		// get the remote process that runs the verify command
+		IRemoteProcess p = runCommand(command, Messages.AbstractRemoteServerRunner_runningValidate, null, true,
+				subMon.newChild(100));
+		// get the buffer reader
+		BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
+
+		// read the output from the command
 		try {
-			// compile the pattern for search
-			Pattern pattern = Pattern.compile(verifyPattern);
-
-			// get the remote process that runs the verify command
-			IRemoteProcess p = runCommand(command, Messages.AbstractRemoteServerRunner_runningValidate, null, true,
-					subMon.newChild(100));
-			// get the buffer reader
-			BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
-
-			// read the output from the command
-			try {
-				String s;
-				while ((s = stdInput.readLine()) != null) {
-					// get a matcher object
-					Matcher m = pattern.matcher(s);
-					if (m.matches()) {
-						return true;
-					}
+			String s;
+			while ((s = stdInput.readLine()) != null) {
+				// get a matcher object
+				Matcher m = pattern.matcher(s);
+				if (m.matches()) {
+					return true;
 				}
-			} catch (IOException e) {
-				/*
-				 * For some reason we're sometimes seeing a "write end dead" message here even though the correct result is
-				 * returned. Ignore this exception for now, though the root cause needs to be ascertained.
-				 */
-				Activator.log(e);
 			}
-
-			return false;
-		} finally {
-			monitor.done();
+		} catch (IOException e) {
+			/*
+			 * For some reason we're sometimes seeing a "write end dead" message here even though the correct result is
+			 * returned. Ignore this exception for now, though the root cause needs to be ascertained.
+			 */
+			Activator.log(e);
 		}
+
+		return false;
 	}
 
 	/**
@@ -724,23 +698,17 @@
 	 */
 	private IRemoteProcess launchServer(IProgressMonitor monitor) throws IOException {
 		SubMonitor subMon = SubMonitor.convert(monitor, 100);
-		try {
-			IFileStore directory = doUpdate(subMon.newChild(50));
+		IFileStore directory = doUpdate(subMon.newChild(50));
 
-			/*
-			 * Now launch the server.
-			 */
-			if (!subMon.isCanceled()) {
-				return runCommand(getLaunchCommand(), Messages.AbstractRemoteServerRunner_launching, directory, false,
-						subMon.newChild(50));
-			}
-
-			return null;
-		} finally {
-			if (monitor != null) {
-				monitor.done();
-			}
+		/*
+		 * Now launch the server.
+		 */
+		if (!subMon.isCanceled()) {
+			return runCommand(getLaunchCommand(), Messages.AbstractRemoteServerRunner_launching, directory, false,
+					subMon.newChild(50));
 		}
+
+		return null;
 	}
 
 	/**
@@ -756,23 +724,17 @@
 			IProgressMonitor monitor) throws IOException {
 		SubMonitor subMon = SubMonitor.convert(monitor);
 		subMon.subTask(message);
-		try {
-			RemoteVariableManager varMgr = RemoteVariableManager.getInstance();
-			varMgr.setVars(fVars);
-			String cmdToRun = varMgr.performStringSubstitution(command);
-			List<String> cmdArgs = Arrays.asList(cmdToRun.split(" ")); //$NON-NLS-1$
-			IRemoteProcessBuilder builder = fRemoteConnection.getRemoteServices().getProcessBuilder(fRemoteConnection, cmdArgs);
-			if (directory != null) {
-				builder.directory(directory);
-			}
-			builder.redirectErrorStream(redirect);
-			builder.environment().putAll(getEnv());
-			return builder.start();
-		} finally {
-			if (monitor != null) {
-				monitor.done();
-			}
+		RemoteVariableManager varMgr = RemoteVariableManager.getInstance();
+		varMgr.setVars(fVars);
+		String cmdToRun = varMgr.performStringSubstitution(command);
+		List<String> cmdArgs = Arrays.asList(cmdToRun.split(" ")); //$NON-NLS-1$
+		IRemoteProcessBuilder builder = fRemoteConnection.getProcessBuilder(cmdArgs);
+		if (directory != null) {
+			builder.directory(directory);
 		}
+		builder.redirectErrorStream(redirect);
+		builder.environment().putAll(getEnv());
+		return builder.start();
 	}
 
 	/**
@@ -850,7 +812,6 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
 	 * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime. IProgressMonitor)
 	 */
 	@Override
@@ -979,9 +940,6 @@
 		} finally {
 			doServerFinished(subMon.newChild(1));
 			setServerState(ServerState.STOPPED);
-			if (monitor != null) {
-				monitor.done();
-			}
 		}
 		return fStatus;
 	}
diff --git a/core/org.eclipse.ptp.remote.server.core/src/org/eclipse/ptp/remote/server/core/RemoteServerManager.java b/core/org.eclipse.ptp.remote.server.core/src/org/eclipse/ptp/remote/server/core/RemoteServerManager.java
index 2ba7149..94fa325 100644
--- a/core/org.eclipse.ptp.remote.server.core/src/org/eclipse/ptp/remote/server/core/RemoteServerManager.java
+++ b/core/org.eclipse.ptp.remote.server.core/src/org/eclipse/ptp/remote/server/core/RemoteServerManager.java
@@ -17,7 +17,7 @@
 import org.eclipse.core.runtime.IExtensionRegistry;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.ptp.internal.remote.server.core.Activator;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnection;
 
 /**
  * @since 5.0
@@ -163,6 +163,7 @@
 	 * @param connection
 	 *            connection used to launch server
 	 * @return instance of the remote server, or null if no extension can be found
+	 * @since 2.0
 	 */
 	public static AbstractRemoteServerRunner getServer(String id, IRemoteConnection connection) {
 		AbstractRemoteServerRunner server = fServerMap.get(getKey(id, connection));
diff --git a/core/org.eclipse.ptp.remote.terminal/META-INF/MANIFEST.MF b/core/org.eclipse.ptp.remote.terminal/META-INF/MANIFEST.MF
index 9c521df..4892e92 100644
--- a/core/org.eclipse.ptp.remote.terminal/META-INF/MANIFEST.MF
+++ b/core/org.eclipse.ptp.remote.terminal/META-INF/MANIFEST.MF
@@ -8,8 +8,8 @@
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
  org.eclipse.tm.terminal,
- org.eclipse.ptp.remote.core,
- org.eclipse.ptp.remote.ui
+ org.eclipse.remote.core,
+ org.eclipse.remote.ui
 Bundle-RequiredExecutionEnvironment: J2SE-1.4
 Export-Package: org.eclipse.ptp.internal.remote.terminal;x-internal:=true
 Bundle-Activator: org.eclipse.ptp.internal.remote.terminal.Activator
diff --git a/core/org.eclipse.ptp.remote.terminal/plugin.properties b/core/org.eclipse.ptp.remote.terminal/plugin.properties
index 0153ddc..44bd203 100644
--- a/core/org.eclipse.ptp.remote.terminal/plugin.properties
+++ b/core/org.eclipse.ptp.remote.terminal/plugin.properties
@@ -5,6 +5,6 @@
 # which accompanies this distribution, and is available at
 # http://www.eclipse.org/legal/epl-v10.html
 ###############################################################################
-pluginName = Target Management Terminal Remote Tools Connector
+pluginName = Target Management Terminal Remote Services Connector
 providerName = Eclipse PTP
-connectionName = Remote Tools
\ No newline at end of file
+connectionName = Remote Services
\ No newline at end of file
diff --git a/core/org.eclipse.ptp.remote.terminal/plugin.xml b/core/org.eclipse.ptp.remote.terminal/plugin.xml
index a9ee90a..1f419a4 100644
--- a/core/org.eclipse.ptp.remote.terminal/plugin.xml
+++ b/core/org.eclipse.ptp.remote.terminal/plugin.xml
@@ -16,7 +16,7 @@
          point="org.eclipse.tm.terminal.terminalConnectors">
       <connector name="%connectionName"
       id="org.eclipse.ptp.remote.internal.terminal.RemoteToolsConnector"
-      class="org.eclipse.ptp.internal.remote.terminal.RemoteToolsConnector"/>
+      class="org.eclipse.ptp.internal.remote.terminal.RemoteConnector"/>
    </extension>
    <extension
          point="org.eclipse.ui.perspectiveExtensions">
diff --git a/core/org.eclipse.ptp.remote.terminal/pom.xml b/core/org.eclipse.ptp.remote.terminal/pom.xml
index cd3e860..f97a2a7 100644
--- a/core/org.eclipse.ptp.remote.terminal/pom.xml
+++ b/core/org.eclipse.ptp.remote.terminal/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/IRemoteToolsSettings.java b/core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/IRemoteSettings.java
similarity index 97%
rename from core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/IRemoteToolsSettings.java
rename to core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/IRemoteSettings.java
index 487e194..a6f2863 100644
--- a/core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/IRemoteToolsSettings.java
+++ b/core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/IRemoteSettings.java
@@ -9,7 +9,7 @@
 
 import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
 
-public interface IRemoteToolsSettings {
+public interface IRemoteSettings {
 	/**
 	 * Get the host name or IP address of remote system to connect.
 	 * 
diff --git a/core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/RemoteToolsConnection.java b/core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/RemoteConnection.java
similarity index 76%
rename from core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/RemoteToolsConnection.java
rename to core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/RemoteConnection.java
index 936ca6e..d98fe90 100644
--- a/core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/RemoteToolsConnection.java
+++ b/core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/RemoteConnection.java
@@ -11,19 +11,19 @@
 import java.io.InputStream;
 import java.io.InterruptedIOException;
 
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteProcess;
-import org.eclipse.ptp.remote.core.IRemoteProcessBuilder;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnectionManager;
+import org.eclipse.remote.core.IRemoteProcess;
+import org.eclipse.remote.core.IRemoteProcessBuilder;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.RemoteServices;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
 import org.eclipse.tm.internal.terminal.provisional.api.Logger;
 import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
 
-class RemoteToolsConnection extends Thread {
+class RemoteConnection extends Thread {
 	private static int fgNo;
 
 	protected static Display getStandardDisplay() {
@@ -35,12 +35,12 @@
 	}
 
 	private final ITerminalControl fControl;
-	private final RemoteToolsConnector fConn;
+	private final RemoteConnector fConn;
 	private IRemoteConnection fRemoteConnection;
 	private IRemoteProcess fProcess;
 
-	protected RemoteToolsConnection(RemoteToolsConnector conn, ITerminalControl control) {
-		super("RemoteToolsConnection-" + fgNo++); //$NON-NLS-1$
+	protected RemoteConnection(RemoteConnector conn, ITerminalControl control) {
+		super("RemoteConnection-" + fgNo++); //$NON-NLS-1$
 		fControl = control;
 		fConn = conn;
 		fControl.setState(TerminalState.CONNECTING);
@@ -66,9 +66,12 @@
 			if (!fRemoteConnection.isOpen()) {
 				return;
 			}
-			IRemoteProcessBuilder processBuilder = fRemoteConnection.getRemoteServices().getProcessBuilder(fRemoteConnection,
-					new String[] { "/bin/bash", "-l" });
-			fProcess = processBuilder.start(IRemoteProcessBuilder.ALLOCATE_PTY);
+			if ((fRemoteConnection.getRemoteServices().getCapabilities() & IRemoteServices.CAPABILITY_SUPPORTS_COMMAND_SHELL) != 0) {
+				fProcess = fRemoteConnection.getCommandShell(IRemoteProcessBuilder.ALLOCATE_PTY);
+			} else {
+				IRemoteProcessBuilder processBuilder = fRemoteConnection.getProcessBuilder(new String[] { "/bin/bash", "-l" });
+				fProcess = processBuilder.start(IRemoteProcessBuilder.ALLOCATE_PTY);
+			}
 			fConn.setInputStream(fProcess.getInputStream());
 			fConn.setOutputStream(fProcess.getOutputStream());
 			fControl.setState(TerminalState.CONNECTED);
@@ -107,7 +110,7 @@
 	private void disconnect() {
 		interrupt();
 		synchronized (this) {
-			if (!fProcess.isCompleted()) {
+			if (fProcess != null && !fProcess.isCompleted()) {
 				fProcess.destroy();
 			}
 		}
diff --git a/core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/RemoteToolsConnector.java b/core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/RemoteConnector.java
similarity index 85%
rename from core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/RemoteToolsConnector.java
rename to core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/RemoteConnector.java
index 5dee1a9..be70254 100644
--- a/core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/RemoteToolsConnector.java
+++ b/core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/RemoteConnector.java
@@ -16,17 +16,17 @@
 import org.eclipse.tm.internal.terminal.provisional.api.Logger;
 import org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl;
 
-public class RemoteToolsConnector extends TerminalConnectorImpl {
+public class RemoteConnector extends TerminalConnectorImpl {
 	private OutputStream fOutputStream;
 	private InputStream fInputStream;
-	private RemoteToolsConnection fConnection;
-	private final RemoteToolsSettings fSettings;
+	private RemoteConnection fConnection;
+	private final RemoteSettings fSettings;
 
-	public RemoteToolsConnector() {
-		this(new RemoteToolsSettings());
+	public RemoteConnector() {
+		this(new RemoteSettings());
 	}
 
-	public RemoteToolsConnector(RemoteToolsSettings settings) {
+	public RemoteConnector(RemoteSettings settings) {
 		fSettings = settings;
 	}
 
@@ -35,7 +35,7 @@
 
 	public void connect(ITerminalControl control) {
 		super.connect(control);
-		fConnection = new RemoteToolsConnection(this, control);
+		fConnection = new RemoteConnection(this, control);
 		fConnection.start();
 	}
 
@@ -88,12 +88,12 @@
 	 * @return the settings for a concrete connection.
 	 * @since org.eclipse.tm.terminal.ssh 2.0 renamed from getTelnetSettings()
 	 */
-	public IRemoteToolsSettings getSshSettings() {
+	public IRemoteSettings getSshSettings() {
 		return fSettings;
 	}
 
 	public ISettingsPage makeSettingsPage() {
-		return new RemoteToolsSettingsPage(fSettings);
+		return new RemoteSettingsPage(fSettings);
 	}
 
 	public String getSettingsSummary() {
diff --git a/core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/RemoteToolsSettings.java b/core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/RemoteSettings.java
similarity index 95%
rename from core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/RemoteToolsSettings.java
rename to core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/RemoteSettings.java
index 973d1ac..e524f74 100644
--- a/core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/RemoteToolsSettings.java
+++ b/core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/RemoteSettings.java
@@ -9,7 +9,7 @@
 
 import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
 
-public class RemoteToolsSettings implements IRemoteToolsSettings {
+public class RemoteSettings implements IRemoteSettings {
 	protected String fRemoteServices;
 	protected String fConnectionName;
 
diff --git a/core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/RemoteToolsSettingsPage.java b/core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/RemoteSettingsPage.java
similarity index 87%
rename from core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/RemoteToolsSettingsPage.java
rename to core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/RemoteSettingsPage.java
index 3dcc04e..911b7c1 100644
--- a/core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/RemoteToolsSettingsPage.java
+++ b/core/org.eclipse.ptp.remote.terminal/src/org/eclipse/ptp/internal/remote/terminal/RemoteSettingsPage.java
@@ -7,18 +7,18 @@
  *******************************************************************************/
 package org.eclipse.ptp.internal.remote.terminal;
 
-import org.eclipse.ptp.remote.ui.widgets.RemoteConnectionWidget;
+import org.eclipse.remote.ui.widgets.RemoteConnectionWidget;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.tm.internal.terminal.provisional.api.AbstractSettingsPage;
 
-public class RemoteToolsSettingsPage extends AbstractSettingsPage {
-	private final RemoteToolsSettings fTerminalSettings;
+public class RemoteSettingsPage extends AbstractSettingsPage {
+	private final RemoteSettings fTerminalSettings;
 	private RemoteConnectionWidget fRemoteConnectionWidget;
 
-	public RemoteToolsSettingsPage(RemoteToolsSettings settings) {
+	public RemoteSettingsPage(RemoteSettings settings) {
 		fTerminalSettings = settings;
 	}
 
@@ -55,7 +55,7 @@
 		composite.setLayout(gridLayout);
 		composite.setLayoutData(gridData);
 
-		fRemoteConnectionWidget = new RemoteConnectionWidget(composite, SWT.NONE, null, 0, null);
+		fRemoteConnectionWidget = new RemoteConnectionWidget(composite, SWT.NONE, null, 0);
 		loadSettings();
 	}
 }
diff --git a/core/org.eclipse.ptp.remote.ui/.classpath b/core/org.eclipse.ptp.remote.ui/.classpath
deleted file mode 100644
index 64c5e31..0000000
--- a/core/org.eclipse.ptp.remote.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/core/org.eclipse.ptp.remote.ui/.settings/org.eclipse.jdt.core.prefs b/core/org.eclipse.ptp.remote.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 416f4fb..0000000
--- a/core/org.eclipse.ptp.remote.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,11 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/core/org.eclipse.ptp.remote.ui/META-INF/MANIFEST.MF b/core/org.eclipse.ptp.remote.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index 5aede22..0000000
--- a/core/org.eclipse.ptp.remote.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,23 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.ptp.remote.ui;singleton:=true
-Bundle-Version: 7.0.0.qualifier
-Bundle-Activator: org.eclipse.ptp.internal.remote.ui.PTPRemoteUIPlugin
-Bundle-Vendor: %pluginProvider
-Require-Bundle: org.eclipse.ui,
- org.eclipse.ui.ide,
- org.eclipse.core.runtime,
- org.eclipse.ptp.remote.core,
- org.eclipse.core.filesystem,
- org.eclipse.core.resources
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.ptp.internal.remote.ui;x-internal:=true,
- org.eclipse.ptp.internal.remote.ui.messages;x-internal:=true,
- org.eclipse.ptp.internal.remote.ui.preferences;x-internal:=true,
- org.eclipse.ptp.internal.remote.ui.services.local;x-internal:=true,
- org.eclipse.ptp.remote.ui,
- org.eclipse.ptp.remote.ui.dialogs,
- org.eclipse.ptp.remote.ui.widgets
-Bundle-Localization: plugin
diff --git a/core/org.eclipse.ptp.remote.ui/about.html b/core/org.eclipse.ptp.remote.ui/about.html
deleted file mode 100644
index 3f81093..0000000
--- a/core/org.eclipse.ptp.remote.ui/about.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>May 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/core/org.eclipse.ptp.remote.ui/icons/dlcl16/new_folder.gif b/core/org.eclipse.ptp.remote.ui/icons/dlcl16/new_folder.gif
deleted file mode 100644
index 310eb18..0000000
--- a/core/org.eclipse.ptp.remote.ui/icons/dlcl16/new_folder.gif
+++ /dev/null
Binary files differ
diff --git a/core/org.eclipse.ptp.remote.ui/icons/dlcl16/up_nav.gif b/core/org.eclipse.ptp.remote.ui/icons/dlcl16/up_nav.gif
deleted file mode 100755
index 884952f..0000000
--- a/core/org.eclipse.ptp.remote.ui/icons/dlcl16/up_nav.gif
+++ /dev/null
Binary files differ
diff --git a/core/org.eclipse.ptp.remote.ui/icons/elcl16/new_folder.gif b/core/org.eclipse.ptp.remote.ui/icons/elcl16/new_folder.gif
deleted file mode 100644
index 310eb18..0000000
--- a/core/org.eclipse.ptp.remote.ui/icons/elcl16/new_folder.gif
+++ /dev/null
Binary files differ
diff --git a/core/org.eclipse.ptp.remote.ui/icons/elcl16/up_nav.gif b/core/org.eclipse.ptp.remote.ui/icons/elcl16/up_nav.gif
deleted file mode 100755
index 884952f..0000000
--- a/core/org.eclipse.ptp.remote.ui/icons/elcl16/up_nav.gif
+++ /dev/null
Binary files differ
diff --git a/core/org.eclipse.ptp.remote.ui/icons/ovr16/symlink_ovr.gif b/core/org.eclipse.ptp.remote.ui/icons/ovr16/symlink_ovr.gif
deleted file mode 100644
index 73bd973..0000000
--- a/core/org.eclipse.ptp.remote.ui/icons/ovr16/symlink_ovr.gif
+++ /dev/null
Binary files differ
diff --git a/core/org.eclipse.ptp.remote.ui/plugin.properties b/core/org.eclipse.ptp.remote.ui/plugin.properties
deleted file mode 100644
index 0f6683b..0000000
--- a/core/org.eclipse.ptp.remote.ui/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 IBM Corporation.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-###############################################################################
-
-pluginName=PTP Remote UI
-pluginProvider=Eclipse PTP
-RemoteDevPrefPage.name=Remote Development
\ No newline at end of file
diff --git a/core/org.eclipse.ptp.remote.ui/plugin.xml b/core/org.eclipse.ptp.remote.ui/plugin.xml
deleted file mode 100644
index d51e97f..0000000
--- a/core/org.eclipse.ptp.remote.ui/plugin.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-   <extension-point id="remoteUIServices" name="Remote UI Services" schema="schema/remoteUIServices.exsd"/>
-   <extension
-         point="org.eclipse.ptp.remote.ui.remoteUIServices">
-      <remoteUIServices
-            class="org.eclipse.ptp.internal.remote.ui.services.local.LocalUIServicesFactory"
-            id="org.eclipse.ptp.remote.LocalServices"
-            name="Local">
-      </remoteUIServices>
-   </extension>
-     <extension
-           point="org.eclipse.ui.preferencePages">
-        <page
-              class="org.eclipse.ptp.internal.remote.ui.preferences.RemoteDevelopmentPreferencePage"
-              id="org.eclipse.ptp.remote.ui.RemoteDevelopmentPreferencePage"
-              name="%RemoteDevPrefPage.name">
-        </page>
-     </extension> 
-
-</plugin>
diff --git a/core/org.eclipse.ptp.remote.ui/pom.xml b/core/org.eclipse.ptp.remote.ui/pom.xml
deleted file mode 100644
index a3404db..0000000
--- a/core/org.eclipse.ptp.remote.ui/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.ptp</groupId>
-    <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
-    <relativePath>../../pom.xml</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.ptp.remote.ui</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
-  <packaging>eclipse-plugin</packaging>
-</project>
diff --git a/core/org.eclipse.ptp.remote.ui/schema/remoteUIServices.exsd b/core/org.eclipse.ptp.remote.ui/schema/remoteUIServices.exsd
deleted file mode 100644
index 537332b..0000000
--- a/core/org.eclipse.ptp.remote.ui/schema/remoteUIServices.exsd
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ptp.remote.ui" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appinfo>
-         <meta.schema plugin="org.eclipse.ptp.remote.ui" id="org.eclipse.ptp.remote.ui" name="RemoteUI"/>
-      </appinfo>
-      <documentation>
-         [Enter description of this extension point.]
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <appinfo>
-            <meta.element />
-         </appinfo>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="remoteUIServices"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="remoteUIServices">
-      <annotation>
-         <appinfo>
-            <meta.element labelAttribute="name"/>
-         </appinfo>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="java" basedOn=":org.eclipse.ptp.remote.ui.IRemoteUIServicesFactory"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="since"/>
-      </appinfo>
-      <documentation>
-         [Enter the first release in which this extension point appears.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="examples"/>
-      </appinfo>
-      <documentation>
-         [Enter extension point usage example here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="apiInfo"/>
-      </appinfo>
-      <documentation>
-         [Enter API information here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="implementation"/>
-      </appinfo>
-      <documentation>
-         [Enter information about supplied implementation of this extension point.]
-      </documentation>
-   </annotation>
-
-
-</schema>
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/DeferredFileStore.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/DeferredFileStore.java
deleted file mode 100644
index bd3fccc..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/DeferredFileStore.java
+++ /dev/null
@@ -1,251 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.remote.ui;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.filesystem.EFS;
-import org.eclipse.core.filesystem.IFileInfo;
-import org.eclipse.core.filesystem.IFileStore;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.dialogs.FileSystemElement;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.ui.progress.IDeferredWorkbenchAdapter;
-import org.eclipse.ui.progress.IElementCollector;
-
-public class DeferredFileStore implements IDeferredWorkbenchAdapter {
-	private final IFileStore fFileStore;
-	private IFileInfo fFileInfo;
-	private IFileInfo fTargetInfo;
-	private ImageDescriptor fImage;
-	private final boolean fExcludeHidden;
-
-	/**
-	 * @since 7.0
-	 */
-	public DeferredFileStore(IFileStore store, boolean exclude) {
-		this(store, null, exclude);
-	}
-
-	/**
-	 * @since 7.0
-	 */
-	public DeferredFileStore(IFileStore store, IFileInfo info, boolean exclude) {
-		fFileStore = store;
-		fFileInfo = info;
-		fExcludeHidden = exclude;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.progress.IDeferredWorkbenchAdapter#fetchDeferredChildren(java.lang.Object,
-	 * org.eclipse.ui.progress.IElementCollector, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void fetchDeferredChildren(Object object, IElementCollector collector, IProgressMonitor monitor) {
-		ArrayList<DeferredFileStore> children = new ArrayList<DeferredFileStore>();
-		try {
-			IFileInfo[] childInfos = fFileStore.childInfos(EFS.NONE, monitor);
-			for (IFileInfo info : childInfos) {
-				if (!(fExcludeHidden && info.getName().startsWith("."))) { //$NON-NLS-1$
-					children.add(new DeferredFileStore(fFileStore.getChild(info.getName()), info, fExcludeHidden));
-				}
-			}
-		} catch (CoreException e) {
-			// Ignore
-		}
-		if (children != null) {
-			collector.add(children.toArray(), monitor);
-		}
-	}
-
-	/**
-	 * Fetch the file info for the store. If the store is a symbolic link, fetch the file info for the target as well.
-	 */
-	private void fetchInfo() {
-		if (fFileInfo == null) {
-			fFileInfo = fFileStore.fetchInfo();
-		}
-		if (fTargetInfo == null && fFileInfo.getAttribute(EFS.ATTRIBUTE_SYMLINK)) {
-			String target = fFileInfo.getStringAttribute(EFS.ATTRIBUTE_LINK_TARGET);
-			if (target != null) {
-				try {
-					URI targetUri = new URI(null, null, target, null); // Make sure target is escaped correctly
-					URI uri = fFileStore.toURI().resolve(targetUri.getRawPath());
-					IFileStore store = fFileStore.getFileSystem().getStore(uri);
-					fTargetInfo = store.fetchInfo();
-				} catch (URISyntaxException e) {
-					PTPRemoteUIPlugin.log(e);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Return the IWorkbenchAdapter for element or the element if it is
-	 * an instance of IWorkbenchAdapter. If it does not exist return
-	 * null.
-	 * 
-	 * @param element
-	 * @return IWorkbenchAdapter or <code>null</code>
-	 */
-	protected IWorkbenchAdapter getAdapter(Object element) {
-		return (IWorkbenchAdapter) getAdapter(element, IWorkbenchAdapter.class);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.model.IWorkbenchAdapter#getChildren(java.lang.Object)
-	 */
-	public Object[] getChildren(Object o) {
-		try {
-			IFileStore[] stores = fFileStore.childStores(EFS.NONE, null);
-			List<DeferredFileStore> def = new ArrayList<DeferredFileStore>();
-			for (int i = 0; i < stores.length; i++) {
-				if (!(fExcludeHidden && stores[i].getName().startsWith("."))) { //$NON-NLS-1$
-					def.add(new DeferredFileStore(stores[i], fExcludeHidden));
-				}
-			}
-			return def.toArray();
-		} catch (CoreException e) {
-			return new Object[0];
-		}
-	}
-
-	/**
-	 * Get the filestore backing this object
-	 * 
-	 * @return
-	 */
-	public IFileStore getFileStore() {
-		return fFileStore;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.model.IWorkbenchAdapter#getImageDescriptor(java.lang.Object)
-	 */
-	public ImageDescriptor getImageDescriptor(Object object) {
-		fetchInfo();
-		if (fImage == null) {
-			boolean isDir = fFileInfo.isDirectory() || (fTargetInfo != null && fTargetInfo.isDirectory());
-			FileSystemElement element = new FileSystemElement(fFileStore.getName(), null, isDir);
-			IWorkbenchAdapter adapter = getAdapter(element);
-			if (adapter != null) {
-				ImageDescriptor imageDesc = adapter.getImageDescriptor(object);
-				if (fTargetInfo != null) {
-					imageDesc = new OverlayImageDescriptor(imageDesc, RemoteUIImages.DESC_OVR_SYMLINK,
-							OverlayImageDescriptor.BOTTOM_RIGHT);
-				}
-				fImage = imageDesc;
-			}
-		}
-		return fImage;
-	}
-
-	/**
-	 * If it is possible to adapt the given object to the given type, this returns the adapter. Performs the following checks:
-	 * 
-	 * <ol>
-	 * <li>Returns <code>sourceObject</code> if it is an instance of the adapter type.</li>
-	 * <li>If sourceObject implements IAdaptable, it is queried for adapters.</li>
-	 * <li>If sourceObject is not an instance of PlatformObject (which would have already done so), the adapter manager is queried
-	 * for adapters</li>
-	 * </ol>
-	 * 
-	 * Otherwise returns null.
-	 * 
-	 * @param sourceObject
-	 *            object to adapt, or null
-	 * @param adapterType
-	 *            type to adapt to
-	 * @return a representation of sourceObject that is assignable to the adapter type, or null if no such representation exists
-	 */
-	@SuppressWarnings("rawtypes")
-	protected Object getAdapter(Object sourceObject, Class adapterType) {
-		Assert.isNotNull(adapterType);
-		if (sourceObject == null) {
-			return null;
-		}
-		if (adapterType.isInstance(sourceObject)) {
-			return sourceObject;
-		}
-
-		if (sourceObject instanceof IAdaptable) {
-			IAdaptable adaptable = (IAdaptable) sourceObject;
-
-			Object result = adaptable.getAdapter(adapterType);
-			if (result != null) {
-				// Sanity-check
-				Assert.isTrue(adapterType.isInstance(result));
-				return result;
-			}
-		}
-
-		if (!(sourceObject instanceof PlatformObject)) {
-			Object result = Platform.getAdapterManager().getAdapter(sourceObject, adapterType);
-			if (result != null) {
-				return result;
-			}
-		}
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.model.IWorkbenchAdapter#getLabel(java.lang.Object)
-	 */
-	public String getLabel(Object o) {
-		return fFileStore.getName();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.model.IWorkbenchAdapter#getParent(java.lang.Object)
-	 */
-	public Object getParent(Object o) {
-		return fFileStore.getParent();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.progress.IDeferredWorkbenchAdapter#getRule(java.lang.Object)
-	 */
-	public ISchedulingRule getRule(Object object) {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.progress.IDeferredWorkbenchAdapter#isContainer()
-	 */
-	public boolean isContainer() {
-		fetchInfo();
-		return fFileInfo.isDirectory() || (fTargetInfo != null && fTargetInfo.isDirectory());
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/OverlayImageDescriptor.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/OverlayImageDescriptor.java
deleted file mode 100644
index 9c1d5ee..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/OverlayImageDescriptor.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ptp.internal.remote.ui;
-
-import org.eclipse.jface.resource.CompositeImageDescriptor;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.Point;
-
-/**
- * @since 7.0
- */
-public class OverlayImageDescriptor extends CompositeImageDescriptor {
-
-	static final int DEFAULT_WIDTH = 16;
-	static final int DEFAULT_HEIGHT = 16;
-
-	public static final int TOP_LEFT = 0;
-	public static final int TOP_RIGHT = 1;
-	public static final int BOTTOM_LEFT = 2;
-	public static final int BOTTOM_RIGHT = 3;
-
-	private final ImageDescriptor fBase;
-	private final ImageDescriptor fOverlay;
-	private final int fPosition;
-	private final int fOffset = 3;
-
-	public OverlayImageDescriptor(ImageDescriptor base, ImageDescriptor overlay, int pos) {
-		fBase = base;
-		fOverlay = overlay;
-		fPosition = pos;
-	}
-
-	/*
-	 * @see org.eclipse.jface.resource.CompositeImageDescriptor#drawCompositeImage(int,
-	 * int)
-	 */
-	@Override
-	protected void drawCompositeImage(int width, int height) {
-		ImageData imageData = fBase.getImageData();
-		if (imageData != null) {
-			drawImage(imageData, 0, 0);
-		}
-		ImageData overlayData = fOverlay.getImageData();
-		if (overlayData != null) {
-			Point pos = null;
-			switch (fPosition) {
-			case TOP_LEFT:
-				pos = new Point(-overlayData.width / 2, -overlayData.height / 2);
-				break;
-			case TOP_RIGHT:
-				pos = new Point(imageData.width - overlayData.width / 2, 0);
-				break;
-			case BOTTOM_LEFT:
-				pos = new Point(0, imageData.height - overlayData.height / 2);
-
-				break;
-			case BOTTOM_RIGHT:
-				pos = new Point(imageData.width - overlayData.width / 2, imageData.height - overlayData.height / 2);
-				break;
-			}
-			drawImage(overlayData, pos.x - fOffset, pos.y - fOffset);
-		}
-	}
-
-	@Override
-	protected Point getSize() {
-		return new Point(DEFAULT_WIDTH, DEFAULT_HEIGHT);
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/PTPRemoteUIPlugin.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/PTPRemoteUIPlugin.java
deleted file mode 100644
index 4788921..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/PTPRemoteUIPlugin.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package org.eclipse.ptp.internal.remote.ui;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ptp.internal.remote.ui.messages.Messages;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class PTPRemoteUIPlugin extends AbstractUIPlugin {
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.ptp.remote.ui"; //$NON-NLS-1$
-
-	// The shared instance
-	private static PTPRemoteUIPlugin plugin;
-
-	/**
-	 * Returns the shared instance
-	 * 
-	 * @return the shared instance
-	 */
-	public static PTPRemoteUIPlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Get unique identifier for this plugin
-	 * 
-	 * @since 7.0
-	 */
-	public static String getUniqueIdentifier() {
-		if (getDefault() == null) {
-			return PLUGIN_ID;
-		}
-		return getDefault().getBundle().getSymbolicName();
-	}
-
-	/**
-	 * Generate a log message given an IStatus object
-	 * 
-	 * @param status
-	 *            IStatus object
-	 * @since 5.0
-	 */
-	public static void log(IStatus status) {
-		getDefault().getLog().log(status);
-	}
-
-	/**
-	 * Generate a log message
-	 * 
-	 * @param msg
-	 *            message to log
-	 * @since 5.0
-	 */
-	public static void log(String msg) {
-		log(new Status(IStatus.ERROR, getDefault().getBundle().getSymbolicName(), IStatus.ERROR, msg, null));
-	}
-
-	/**
-	 * Generate a log message for an exception
-	 * 
-	 * @param e
-	 *            exception used to generate message
-	 * @since 5.0
-	 */
-	public static void log(Throwable e) {
-		log(new Status(IStatus.ERROR, getDefault().getBundle().getSymbolicName(), IStatus.ERROR, Messages.PTPRemoteUIPlugin_3, e));
-	}
-
-	/**
-	 * The constructor
-	 */
-	public PTPRemoteUIPlugin() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext )
-	 */
-	@Override
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext )
-	 */
-	@Override
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/RemoteContentProvider.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/RemoteContentProvider.java
deleted file mode 100755
index 93f9bec..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/RemoteContentProvider.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.remote.ui;
-
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.progress.DeferredTreeContentManager;
-
-/**
- * Extension to the generic workbench content provider mechanism
- * to lazily determine whether an element has children.  That is,
- * children for an element aren't fetched until the user clicks
- * on the tree expansion box.
- */
-public class RemoteContentProvider extends WorkbenchContentProvider {
-	private IWorkingSet workingSet;
-	private DeferredTreeContentManager manager;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-	 */
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		if (newInput != null) {
-			manager = new DeferredTreeContentManager((AbstractTreeViewer) viewer);
-		} else {
-			manager = null;
-		}
-		super.inputChanged(viewer, oldInput, newInput);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.model.BaseWorkbenchContentProvider#hasChildren(java.lang.Object)
-	 */
-	public boolean hasChildren(Object element) {
-		if (manager != null && manager.isDeferredAdapter(element)) {
-			return manager.mayHaveChildren(element);
-		}
-
-		return super.hasChildren(element);
-	}
-
-	/**
-	 * Sets the workingSet.
-	 * @param workingSet The workingSet to set
-	 */
-	public void setWorkingSet(IWorkingSet workingSet) {
-		this.workingSet = workingSet;
-	}
-
-	/**
-	 * Returns the workingSet.
-	 * @return IWorkingSet
-	 */
-	public IWorkingSet getWorkingSet() {
-		return workingSet;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.model.WorkbenchContentProvider#getChildren(java.lang.Object)
-	 */
-	public Object[] getChildren(Object element) {
-		if (manager != null) {
-			Object[] children = manager.getChildren(element);
-			if (children != null) {
-				return children;
-			}
-		}
-		return super.getChildren(element);
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/RemoteResourceComparator.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/RemoteResourceComparator.java
deleted file mode 100755
index c0865de..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/RemoteResourceComparator.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.remote.ui;
-
-
-import org.eclipse.core.filesystem.IFileInfo;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-
-public class RemoteResourceComparator extends ViewerComparator {
-	
-	private boolean ascending = true;
-	
-	public RemoteResourceComparator() {
-		super();
-	}
-	
-	public void setAscending(boolean ascending) {
-		this.ascending = ascending;
-	}
-	
-	public boolean isAscending() {
-		return ascending;
-	}
-
-	public int compare(Viewer viewer, Object o1, Object o2) {
-		if (o1 instanceof IFileInfo && o2 instanceof IFileInfo) {
-			int compareResult = ((IFileInfo)o1).getName().compareToIgnoreCase(((IFileInfo)o2).getName());;
-			return ascending ? compareResult : -compareResult;
-		}
-		
-		return super.compare(viewer, o1, o2);
-	}
-	
-}
-
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/RemoteUIImages.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/RemoteUIImages.java
deleted file mode 100644
index f02d4c7..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/RemoteUIImages.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010,2013 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.remote.ui;
-
-import java.net.URL;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-import org.osgi.framework.Bundle;
-
-public class RemoteUIImages {
-
-	public static final IPath ICONS_PATH = new Path("icons"); //$NON-NLS-1$
-
-	private static final String NAME_PREFIX = PTPRemoteUIPlugin.PLUGIN_ID + "."; //$NON-NLS-1$
-
-	private static ImageRegistry fgImageRegistry = new ImageRegistry();
-
-	private static final String T_ELCL = "elcl16"; //$NON-NLS-1$
-	private static final String T_DLCL = "dlcl16"; //$NON-NLS-1$
-	private static final String T_OVR = "ovr16"; //$NON-NLS-1$
-
-	/*
-	 * Keys for images available from the plug-in image registry.
-	 */
-	public static final String IMG_ELCL_UP_NAV = NAME_PREFIX + T_ELCL + ".up_nav.gif"; //$NON-NLS-1$
-	public static final String IMG_DLCL_UP_NAV = NAME_PREFIX + T_DLCL + ".up_nav.gif"; //$NON-NLS-1$
-	public static final String IMG_OVR_SYMLINK = NAME_PREFIX + T_OVR + ".symlink_ovr.gif"; //$NON-NLS-1$
-	public static final String IMG_ELCL_NEW_FOLDER = NAME_PREFIX + T_ELCL + ".new_folder.gif"; //$NON-NLS-1$
-	public static final String IMG_DLCL_NEW_FOLDER = NAME_PREFIX + T_DLCL + ".new_folder.gif"; //$NON-NLS-1$
-	/*
-	 * Set of predefined Image Descriptors.
-	 */
-	public static final ImageDescriptor DESC_ELCL_UP_NAV = createManaged(T_ELCL, "up_nav.gif", IMG_ELCL_UP_NAV); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_DLCL_UP_NAV = createManaged(T_DLCL, "up_nav.gif", IMG_ELCL_UP_NAV); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_OVR_SYMLINK = createManaged(T_OVR, "symlink_ovr.gif", IMG_OVR_SYMLINK); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_ELCL_NEW_FOLDER = createManaged(T_ELCL, "new_folder.gif", IMG_ELCL_NEW_FOLDER); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_DLCL_NEW_FOLDER = createManaged(T_DLCL, "new_folder.gif", IMG_DLCL_NEW_FOLDER); //$NON-NLS-1$
-
-	/**
-	 * Returns the image managed under the given key in this registry.
-	 * 
-	 * @param key
-	 *            the image's key
-	 * @return the image managed under the given key
-	 */
-	public static Image get(String key) {
-		return fgImageRegistry.get(key);
-	}
-
-	/**
-	 * Returns the image descriptor for the given key in this registry. Might be called in a non-UI thread.
-	 * 
-	 * @param key
-	 *            the image's key
-	 * @return the image descriptor for the given key
-	 */
-	public static ImageDescriptor getDescriptor(String key) {
-		return fgImageRegistry.getDescriptor(key);
-	}
-
-	/**
-	 * Sets the three image descriptors for enabled, disabled, and hovered to an action. The actions
-	 * are retrieved from the *lcl16 folders.
-	 * 
-	 * @param action
-	 *            the action
-	 * @param iconName
-	 *            the icon name
-	 */
-	public static void setLocalImageDescriptors(IAction action, String iconName) {
-		setImageDescriptors(action, "lcl16", iconName); //$NON-NLS-1$
-	}
-
-	// ---- Helper methods to access icons on the file system --------------------------------------
-
-	private static void setImageDescriptors(IAction action, String type, String relPath) {
-		ImageDescriptor id = create("d" + type, relPath, false); //$NON-NLS-1$
-		if (id != null) {
-			action.setDisabledImageDescriptor(id);
-		}
-
-		/*
-		 * id= create("c" + type, relPath, false); //$NON-NLS-1$
-		 * if (id != null)
-		 * action.setHoverImageDescriptor(id);
-		 */
-
-		ImageDescriptor descriptor = create("e" + type, relPath, true); //$NON-NLS-1$
-		action.setHoverImageDescriptor(descriptor);
-		action.setImageDescriptor(descriptor);
-	}
-
-	private static ImageDescriptor createManaged(String prefix, String name, String key) {
-		ImageDescriptor image = create(prefix, name, true);
-		fgImageRegistry.put(key, image);
-		return image;
-	}
-
-	/*
-	 * Creates an image descriptor for the given prefix and name in the JDT UI bundle. The path can
-	 * contain variables like $NL$.
-	 * If no image could be found, <code>useMissingImageDescriptor</code> decides if either
-	 * the 'missing image descriptor' is returned or <code>null</code>.
-	 * or <code>null</code>.
-	 */
-	private static ImageDescriptor create(String prefix, String name, boolean useMissingImageDescriptor) {
-		IPath path = ICONS_PATH.append(prefix).append(name);
-		return createImageDescriptor(PTPRemoteUIPlugin.getDefault().getBundle(), path, useMissingImageDescriptor);
-	}
-
-	/*
-	 * Creates an image descriptor for the given path in a bundle. The path can contain variables
-	 * like $NL$.
-	 * If no image could be found, <code>useMissingImageDescriptor</code> decides if either
-	 * the 'missing image descriptor' is returned or <code>null</code>.
-	 * Added for 3.1.1.
-	 */
-	public static ImageDescriptor createImageDescriptor(Bundle bundle, IPath path, boolean useMissingImageDescriptor) {
-		URL url = FileLocator.find(bundle, path, null);
-		if (url != null) {
-			return ImageDescriptor.createFromURL(url);
-		}
-		if (useMissingImageDescriptor) {
-			return ImageDescriptor.getMissingImageDescriptor();
-		}
-		return null;
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/RemoteUIServicesProxy.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/RemoteUIServicesProxy.java
deleted file mode 100644
index 5d267bd..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/RemoteUIServicesProxy.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.remote.ui;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ptp.internal.remote.ui.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.ui.IRemoteUIServices;
-import org.eclipse.ptp.remote.ui.IRemoteUIServicesDescriptor;
-import org.eclipse.ptp.remote.ui.IRemoteUIServicesFactory;
-
-public class RemoteUIServicesProxy implements IRemoteUIServicesDescriptor {
-	private static final String ATTR_ID = "id"; //$NON-NLS-1$
-	private static final String ATTR_NAME = "name"; //$NON-NLS-1$
-	private static final String ATTR_CLASS = "class"; //$NON-NLS-1$
-
-	private static String getAttribute(IConfigurationElement configElement, String name, String defaultValue) {
-		String value = configElement.getAttribute(name);
-		if (value != null) {
-			return value;
-		}
-		if (defaultValue != null) {
-			return defaultValue;
-		}
-		throw new IllegalArgumentException(NLS.bind(Messages.RemoteUIServicesProxy_1, name));
-	}
-
-	private final IConfigurationElement configElement;
-	private final String id;
-	private final String name;
-	private IRemoteUIServicesFactory fFactory = null;
-	private IRemoteUIServices fDelegate = null;
-
-	public RemoteUIServicesProxy(IConfigurationElement configElement) {
-		this.configElement = configElement;
-		this.id = getAttribute(configElement, ATTR_ID, null);
-		this.name = getAttribute(configElement, ATTR_NAME, this.id);
-		getAttribute(configElement, ATTR_CLASS, null);
-	}
-
-	/**
-	 * Get the factory from the plugin
-	 * 
-	 * @return instance of the factory
-	 */
-	public IRemoteUIServicesFactory getFactory() {
-		if (fFactory != null) {
-			return fFactory;
-		}
-		try {
-			fFactory = (IRemoteUIServicesFactory) configElement.createExecutableExtension(ATTR_CLASS);
-		} catch (Exception e) {
-			PTPRemoteUIPlugin.log(NLS.bind(Messages.RemoteUIServicesProxy_2, new Object[] { configElement.getAttribute(ATTR_CLASS),
-					id, configElement.getDeclaringExtension().getNamespaceIdentifier() }));
-		}
-		return fFactory;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteServices#getId()
-	 */
-	public String getId() {
-		return id;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.core.IRemoteServices#getName()
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * Get the remote UI services implementation for this descriptor.
-	 * 
-	 * @return the remote UI services implementation, or null if initialization failed
-	 */
-	public IRemoteUIServices getUIServices(IRemoteServices services) {
-		loadServices(services);
-		return fDelegate;
-	}
-
-	/**
-	 * Create and initialize the remote UI services factory
-	 */
-	private void loadServices(IRemoteServices services) {
-		if (fDelegate == null) {
-			IRemoteUIServicesFactory factory = getFactory();
-			if (factory != null) {
-				fDelegate = factory.getServices(services);
-			}
-		}
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/messages/Messages.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/messages/Messages.java
deleted file mode 100644
index e09b536..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/messages/Messages.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    IBM - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ptp.internal.remote.ui.messages;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ptp.internal.remote.ui.messages.messages"; //$NON-NLS-1$
-
-	public static String AbstractRemoteUIConnectionManager_Connection_Error;
-
-	public static String AbstractRemoteUIConnectionManager_Could_not_open_connection;
-
-	public static String LocalUIConnectionManager_0;
-	public static String LocalUIConnectionManager_1;
-	public static String LocalUIConnectionManager_2;
-	public static String LocalUIConnectionManager_3;
-	
-	public static String PTPRemoteUIPlugin_3;
-	public static String PTPRemoteUIPlugin_4;
-	
-	public static String RemoteConnectionWidget_Connection_Type;
-	public static String RemoteConnectionWidget_connectionName;
-	public static String RemoteConnectionWidget_Local;
-	public static String RemoteConnectionWidget_new;
-	public static String RemoteConnectionWidget_Remote;
-	public static String RemoteConnectionWidget_remoteServiceProvider;
-	public static String RemoteConnectionWidget_selectConnection;
-	public static String RemoteConnectionWidget_selectRemoteProvider;
-
-	public static String RemoteDevelopmentPreferencePage_defaultRemoteServicesProvider;
-
-	public static String RemoteDirectoryWidget_0;
-	public static String RemoteDirectoryWidget_1;
-	public static String RemoteDirectoryWidget_2;
-	public static String RemoteDirectoryWidget_3;
-	
-	public static String RemoteResourceBrowser_resourceTitle;
-	public static String RemoteResourceBrowser_fileTitle;
-	public static String RemoteResourceBrowser_directoryTitle;
-	public static String RemoteResourceBrowser_resourceLabel;
-	public static String RemoteResourceBrowser_fileLabel;
-	public static String RemoteResourceBrowser_directoryLabel;
-	public static String RemoteResourceBrowser_connectonLabel;
-	public static String RemoteResourceBrowser_newConnection;
-	public static String RemoteResourceBrowser_NewFolder;
-	public static String RemoteResourceBrowser_Show_hidden_files;
-	public static String RemoteResourceBrowser_UpOneLevel;
-	
-	public static String RemoteUIServices_Configuring_remote_services;
-
-	public static String RemoteUIServicesProxy_1;
-	public static String RemoteUIServicesProxy_2;
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/messages/messages.properties b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/messages/messages.properties
deleted file mode 100644
index 70f035e..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/messages/messages.properties
+++ /dev/null
@@ -1,42 +0,0 @@
-AbstractRemoteUIConnectionManager_Could_not_open_connection=Could not open connection
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-###############################################################################
-AbstractRemoteUIConnectionManager_Connection_Error=Connection Error
-LocalUIConnectionManager_0=Connection Error
-LocalUIConnectionManager_1=Could not open connection
-LocalUIConnectionManager_2=Can not create local connection
-LocalUIConnectionManager_3=It is not possible to create a connection for the local connection provider. Select a different remote provider first.
-PTPRemoteUIPlugin_3=Internal Error
-PTPRemoteUIPlugin_4=Initializing remote services
-RemoteConnectionWidget_Connection_Type=Connection Type
-RemoteConnectionWidget_connectionName=Connection name:
-RemoteConnectionWidget_Local=Local
-RemoteConnectionWidget_new=New...
-RemoteConnectionWidget_Remote=Remote
-RemoteConnectionWidget_remoteServiceProvider=Remote service provider:
-RemoteConnectionWidget_selectConnection=Please select a connection
-RemoteConnectionWidget_selectRemoteProvider=Please select a remote provider
-RemoteDevelopmentPreferencePage_defaultRemoteServicesProvider=Default remote services provider
-RemoteDirectoryWidget_0=Select Directory
-RemoteDirectoryWidget_1=Directory:
-RemoteDirectoryWidget_2=Browse...
-RemoteDirectoryWidget_3=Restore Default
-RemoteResourceBrowser_resourceTitle=Browse Resource
-RemoteResourceBrowser_fileTitle=Browse File
-RemoteResourceBrowser_directoryTitle=Browse Directory
-RemoteResourceBrowser_resourceLabel=Select resource:
-RemoteResourceBrowser_fileLabel=Select file:
-RemoteResourceBrowser_directoryLabel=Select directory:
-RemoteResourceBrowser_connectonLabel=Connection:
-RemoteResourceBrowser_newConnection=New...
-RemoteResourceBrowser_NewFolder=New folder
-RemoteResourceBrowser_Show_hidden_files=Show hidden files
-RemoteResourceBrowser_UpOneLevel=Up one level
-RemoteUIServices_Configuring_remote_services=Configuring remote services...
-RemoteUIServicesProxy_1=Missing {0} attribute
-RemoteUIServicesProxy_2=Failed to instantiate factory: {0} in type: {1} in plugin: {2}
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/preferences/PreferencesAdapter.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/preferences/PreferencesAdapter.java
deleted file mode 100644
index 1cfb8a9..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/preferences/PreferencesAdapter.java
+++ /dev/null
@@ -1,306 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ptp.internal.remote.ui.preferences;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.ptp.internal.remote.core.preferences.Preferences;
-
-/**
- * Adapts {@link org.eclipse.core.runtime.IEclipsePreferences} to {@link org.eclipse.jface.preference.IPreferenceStore}
- * 
- * @since 3.0
- */
-public class PreferencesAdapter implements IPreferenceStore {
-
-	/**
-	 * Property change listener. Listens for events of type
-	 * {@link org.eclipse.core.runtime.IEclipsePreferences.PreferenceChangeEvent} and fires a
-	 * {@link org.eclipse.jface.util.PropertyChangeEvent} on the adapter with arguments from the received event.
-	 */
-	private class PreferenceChangeListener implements IPreferenceChangeListener {
-
-		/*
-		 * @see org.eclipse.core.runtime.Preferences.IPropertyChangeListener# propertyChange
-		 * (org.eclipse.core.runtime.Preferences.PropertyChangeEvent)
-		 */
-		public void preferenceChange(IEclipsePreferences.PreferenceChangeEvent event) {
-			firePropertyChangeEvent(event.getKey(), event.getOldValue(), event.getNewValue());
-		}
-	}
-
-	/** Listeners on the adapter */
-	private final ListenerList fListeners = new ListenerList(ListenerList.IDENTITY);
-
-	/** Listener on the adapted Preferences */
-	private final PreferenceChangeListener fListener = new PreferenceChangeListener();
-
-	private final String fPrefsQualifier;
-
-	/** True iff no events should be forwarded */
-	private boolean fSilent;
-
-	/** True if any preferences have changed */
-	private boolean fNeedsSaving = false;
-
-	/**
-	 * Initialize with the given Preferences.
-	 * 
-	 * @param preferences
-	 *            The preferences to wrap.
-	 * @since 4.0
-	 */
-	public PreferencesAdapter(String qualifier) {
-		fPrefsQualifier = qualifier;
-		Preferences.addPreferenceChangeListener(fPrefsQualifier, fListener);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public void addPropertyChangeListener(IPropertyChangeListener listener) {
-		fListeners.add(listener);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public void removePropertyChangeListener(IPropertyChangeListener listener) {
-		fListeners.remove(listener);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public boolean contains(String name) {
-		return Preferences.contains(fPrefsQualifier, name);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public void firePropertyChangeEvent(String name, Object oldValue, Object newValue) {
-		fNeedsSaving = true;
-		if (!fSilent) {
-			PropertyChangeEvent event = new PropertyChangeEvent(this, name, oldValue, newValue);
-			Object[] listeners = fListeners.getListeners();
-			for (int i = 0; i < listeners.length; i++) {
-				((IPropertyChangeListener) listeners[i]).propertyChange(event);
-			}
-		}
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public boolean getBoolean(String name) {
-		return Preferences.getBoolean(fPrefsQualifier, name);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public boolean getDefaultBoolean(String name) {
-		return Preferences.getDefaultBoolean(fPrefsQualifier, name, false);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public double getDefaultDouble(String name) {
-		return Preferences.getDefaultDouble(fPrefsQualifier, name, 0.0);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public float getDefaultFloat(String name) {
-		return Preferences.getDefaultFloat(fPrefsQualifier, name, 0.0f);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public int getDefaultInt(String name) {
-		return Preferences.getDefaultInt(fPrefsQualifier, name, 0);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public long getDefaultLong(String name) {
-		return Preferences.getDefaultLong(fPrefsQualifier, name, 0L);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public String getDefaultString(String name) {
-		return Preferences.getDefaultString(fPrefsQualifier, name, ""); //$NON-NLS-1$
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public double getDouble(String name) {
-		return Preferences.getDouble(fPrefsQualifier, name);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public float getFloat(String name) {
-		return Preferences.getFloat(fPrefsQualifier, name);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public int getInt(String name) {
-		return Preferences.getInt(fPrefsQualifier, name);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public long getLong(String name) {
-		return Preferences.getLong(fPrefsQualifier, name);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public String getString(String name) {
-		return Preferences.getString(fPrefsQualifier, name);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public boolean isDefault(String name) {
-		return Preferences.isDefault(fPrefsQualifier, name);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public boolean needsSaving() {
-		return fNeedsSaving;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public void putValue(String name, String value) {
-		try {
-			fSilent = true;
-			Preferences.setString(fPrefsQualifier, name, value);
-		} finally {
-			fSilent = false;
-		}
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public void setDefault(String name, double value) {
-		Preferences.setDefaultDouble(fPrefsQualifier, name, value);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public void setDefault(String name, float value) {
-		Preferences.setDefaultFloat(fPrefsQualifier, name, value);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public void setDefault(String name, int value) {
-		Preferences.setDefaultInt(fPrefsQualifier, name, value);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public void setDefault(String name, long value) {
-		Preferences.setDefaultLong(fPrefsQualifier, name, value);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public void setDefault(String name, String defaultObject) {
-		Preferences.setDefaultString(fPrefsQualifier, name, defaultObject);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public void setDefault(String name, boolean value) {
-		Preferences.setDefaultBoolean(fPrefsQualifier, name, value);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public void setToDefault(String name) {
-		Preferences.setToDefault(fPrefsQualifier, name);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public void setValue(String name, double value) {
-		Preferences.setDouble(fPrefsQualifier, name, value);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public void setValue(String name, float value) {
-		Preferences.setFloat(fPrefsQualifier, name, value);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public void setValue(String name, int value) {
-		Preferences.setInt(fPrefsQualifier, name, value);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public void setValue(String name, long value) {
-		Preferences.setLong(fPrefsQualifier, name, value);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public void setValue(String name, String value) {
-		Preferences.setString(fPrefsQualifier, name, value);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public void setValue(String name, boolean value) {
-		Preferences.setBoolean(fPrefsQualifier, name, value);
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/preferences/RemoteDevelopmentPreferencePage.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/preferences/RemoteDevelopmentPreferencePage.java
deleted file mode 100644
index f918d86..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/preferences/RemoteDevelopmentPreferencePage.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2012 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- * IBM - Initial API and implementation

- *******************************************************************************/

-

-package org.eclipse.ptp.internal.remote.ui.preferences;

-

-import java.util.ArrayList;

-import java.util.List;

-

-import org.eclipse.jface.preference.ComboFieldEditor;

-import org.eclipse.jface.preference.FieldEditorPreferencePage;

-import org.eclipse.ptp.internal.remote.core.PTPRemoteCorePlugin;

-import org.eclipse.ptp.internal.remote.core.RemoteServicesImpl;

-import org.eclipse.ptp.internal.remote.core.RemoteServicesProxy;

-import org.eclipse.ptp.internal.remote.ui.messages.Messages;

-import org.eclipse.ptp.remote.core.IRemotePreferenceConstants;

-import org.eclipse.ui.IWorkbench;

-import org.eclipse.ui.IWorkbenchPreferencePage;

-

-/**

- * @since 4.1

- * 

- */

-public class RemoteDevelopmentPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {

-

-	public RemoteDevelopmentPreferencePage() {

-		super(GRID);

-		setPreferenceStore(new PreferencesAdapter(PTPRemoteCorePlugin.getUniqueIdentifier()));

-	}

-

-	public void init(IWorkbench workbench) {

-		// Do nothing

-	}

-

-	@Override

-	protected void createFieldEditors() {

-		List<String[]> namesAndValues = new ArrayList<String[]>();

-

-		for (RemoteServicesProxy service : RemoteServicesImpl.getRemoteServiceProxies()) {

-			String[] nameAndValue = new String[2];

-			nameAndValue[0] = service.getName();

-			nameAndValue[1] = service.getId();

-			namesAndValues.add(nameAndValue);

-		}

-		addField(new ComboFieldEditor(IRemotePreferenceConstants.PREF_REMOTE_SERVICES_ID,

-				Messages.RemoteDevelopmentPreferencePage_defaultRemoteServicesProvider,

-				namesAndValues.toArray(new String[namesAndValues.size()][2]), getFieldEditorParent()));

-	}

-}

diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/services/local/LocalUIConnectionManager.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/services/local/LocalUIConnectionManager.java
deleted file mode 100644
index 9ad3925..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/services/local/LocalUIConnectionManager.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.remote.ui.services.local;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableContext;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.ptp.internal.remote.ui.PTPRemoteUIPlugin;
-import org.eclipse.ptp.internal.remote.ui.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
-import org.eclipse.ptp.remote.ui.IRemoteUIConnectionManager;
-import org.eclipse.swt.widgets.Shell;
-
-public class LocalUIConnectionManager implements IRemoteUIConnectionManager {
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteUIConnectionManager#newConnection()
-	 */
-	public IRemoteConnection newConnection(Shell shell) {
-		MessageDialog.openInformation(shell, Messages.LocalUIConnectionManager_2, Messages.LocalUIConnectionManager_3);
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.ui.IRemoteUIConnectionManager#newConnection(org
-	 * .eclipse.swt.widgets.Shell, java.lang.String[], java.lang.String[])
-	 */
-	public IRemoteConnection newConnection(Shell shell, String[] attrHints, String[] attrHintValues) {
-		return newConnection(shell);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.ui.IRemoteUIConnectionManager#
-	 * openConnectionWithProgress(org.eclipse.swt.widgets.Shell,
-	 * org.eclipse.jface.operation.IRunnableContext,
-	 * org.eclipse.ptp.remote.core.IRemoteConnection)
-	 */
-	public void openConnectionWithProgress(final Shell shell, IRunnableContext context, final IRemoteConnection connection) {
-		if (!connection.isOpen()) {
-			IRunnableWithProgress op = new IRunnableWithProgress() {
-				public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-					try {
-						connection.open(monitor);
-					} catch (RemoteConnectionException e) {
-						ErrorDialog.openError(shell, Messages.LocalUIConnectionManager_0, Messages.LocalUIConnectionManager_1,
-								new Status(IStatus.ERROR, PTPRemoteUIPlugin.getUniqueIdentifier(), e.getMessage()));
-					}
-				}
-			};
-			try {
-				if (context != null) {
-					context.run(true, true, op);
-				} else {
-					new ProgressMonitorDialog(shell).run(true, true, op);
-				}
-			} catch (InvocationTargetException e) {
-				ErrorDialog.openError(shell, Messages.LocalUIConnectionManager_0, Messages.LocalUIConnectionManager_1, new Status(
-						IStatus.ERROR, PTPRemoteUIPlugin.getUniqueIdentifier(), e.getMessage()));
-			} catch (InterruptedException e) {
-				ErrorDialog.openError(shell, Messages.LocalUIConnectionManager_0, Messages.LocalUIConnectionManager_1, new Status(
-						IStatus.ERROR, PTPRemoteUIPlugin.getUniqueIdentifier(), e.getMessage()));
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.ui.IRemoteUIConnectionManager#updateConnection
-	 * (org.eclipse.swt.widgets.Shell,
-	 * org.eclipse.ptp.remote.core.IRemoteConnection)
-	 */
-	public void updateConnection(Shell shell, IRemoteConnection connection) {
-		// TODO Auto-generated method stub
-
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/services/local/LocalUIFileManager.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/services/local/LocalUIFileManager.java
deleted file mode 100644
index e418c2a..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/services/local/LocalUIFileManager.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.remote.ui.services.local;
-
-import java.io.File;
-
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.ui.IRemoteUIFileManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Shell;
-
-public class LocalUIFileManager implements IRemoteUIFileManager {
-	private IRemoteConnection connection = null;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteFileManager#browseDirectory(org.eclipse
-	 * .swt.widgets.Shell, java.lang.String, java.lang.String)
-	 */
-	public String browseDirectory(Shell shell, String message, String filterPath, int flags) {
-		DirectoryDialog dialog = new DirectoryDialog(shell);
-		dialog.setText(message);
-		if (filterPath != null) {
-			File path = new File(filterPath);
-			if (path.exists()) {
-				dialog.setFilterPath(path.isFile() ? path.getParent() : filterPath);
-			}
-		}
-
-		String path = dialog.open();
-		if (path == null) {
-			return null;
-		}
-
-		return path;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteFileManager#browseFile(org.eclipse
-	 * .swt.widgets.Shell, java.lang.String, java.lang.String)
-	 */
-	public String browseFile(Shell shell, String message, String filterPath, int flags) {
-		FileDialog dialog = new FileDialog(shell, SWT.SINGLE);
-		dialog.setText(message);
-		if (filterPath != null) {
-			File path = new File(filterPath);
-			if (path.exists()) {
-				dialog.setFilterPath(path.isFile() ? path.getParent() : filterPath);
-			}
-		}
-
-		String path = dialog.open();
-		if (path == null) {
-			return null;
-		}
-
-		return path;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.core.IRemoteFileManager#browseFile(org.eclipse
-	 * .swt.widgets.Shell, java.lang.String, java.lang.String)
-	 */
-	public String[] browseFiles(Shell shell, String message, String filterPath, int flags) {
-		FileDialog dialog = new FileDialog(shell, SWT.MULTI);
-		dialog.setText(message);
-		if (filterPath != null) {
-			File path = new File(filterPath);
-			if (path.exists()) {
-				dialog.setFilterPath(path.isFile() ? path.getParent() : filterPath);
-			}
-		}
-
-		String path = dialog.open();
-		if (path == null) {
-			return null;
-		}
-
-		return dialog.getFileNames();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.ui.IRemoteUIFileManager#getConnection()
-	 */
-	public IRemoteConnection getConnection() {
-		return connection;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.ui.IRemoteUIFileManager#setConnection(org.eclipse
-	 * .ptp.remote.core.IRemoteConnection)
-	 */
-	public void setConnection(IRemoteConnection connection) {
-		this.connection = connection;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.remote.ui.IRemoteUIFileManager#showConnections(boolean)
-	 */
-	public void showConnections(boolean enable) {
-		// Not implemented
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/services/local/LocalUIServices.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/services/local/LocalUIServices.java
deleted file mode 100644
index 0f8fb84..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/services/local/LocalUIServices.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.remote.ui.services.local;
-
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.ui.IRemoteUIConnectionManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIFileManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIServices;
-
-public class LocalUIServices implements IRemoteUIServices {
-	private static LocalUIServices fInstance = null;
-	private final static LocalUIFileManager fFileMgr = new LocalUIFileManager();
-	private final static LocalUIConnectionManager fConnMgr = new LocalUIConnectionManager();
-
-	/**
-	 * Get shared instance of this class
-	 * 
-	 * @return instance
-	 */
-	public static LocalUIServices getInstance(IRemoteServices services) {
-		if (fInstance == null) {
-			fInstance = new LocalUIServices(services);
-		}
-		return fInstance;
-	}
-
-	private final IRemoteServices fServices;
-
-	public LocalUIServices(IRemoteServices services) {
-		fServices = services;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ptp.remote.ui.IRemoteUIServicesDescriptor#getId()
-	 */
-	public String getId() {
-		return fServices.getId();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ptp.remote.ui.IRemoteUIServicesDescriptor#getName()
-	 */
-	public String getName() {
-		return fServices.getName();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ptp.remote.ui.IRemoteUIServicesDescriptor#getUIConnectionManager(org.eclipse.ptp.remote.core.IRemoteConnectionManager)
-	 */
-	public IRemoteUIConnectionManager getUIConnectionManager() {
-		return fConnMgr;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ptp.remote.ui.IRemoteUIServicesDescriptor#getUIFileManager(org.eclipse.ptp.remote.core.IRemoteConnection)
-	 */
-	public IRemoteUIFileManager getUIFileManager() {
-		return fFileMgr;
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/services/local/LocalUIServicesFactory.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/services/local/LocalUIServicesFactory.java
deleted file mode 100644
index a9bb6fc..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/internal/remote/ui/services/local/LocalUIServicesFactory.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.remote.ui.services.local;
-
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.ui.IRemoteUIServices;
-import org.eclipse.ptp.remote.ui.IRemoteUIServicesFactory;
-
-public class LocalUIServicesFactory implements IRemoteUIServicesFactory {
-	/* (non-Javadoc)
-	 * @see org.eclipse.ptp.remote.ui.IRemoteUIServicesFactory#getServices(org.eclipse.ptp.remote.core.IRemoteServices)
-	 */
-	public IRemoteUIServices getServices(IRemoteServices services) {
-		return LocalUIServices.getInstance(services);
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/AbstractRemoteUIConnectionManager.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/AbstractRemoteUIConnectionManager.java
deleted file mode 100644
index 5eadc2d..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/AbstractRemoteUIConnectionManager.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.ui;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableContext;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.ptp.internal.remote.ui.PTPRemoteUIPlugin;
-import org.eclipse.ptp.internal.remote.ui.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Abstract base class for providing UI connection manager services.
- * 
- * @since 7.0
- */
-public abstract class AbstractRemoteUIConnectionManager implements IRemoteUIConnectionManager {
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.remote.ui.IRemoteUIConnectionManager#
-	 * openConnectionWithProgress(org.eclipse.swt.widgets.Shell,
-	 * org.eclipse.jface.operation.IRunnableContext,
-	 * org.eclipse.ptp.remote.core.IRemoteConnection)
-	 */
-	public void openConnectionWithProgress(final Shell shell, IRunnableContext context, final IRemoteConnection connection) {
-		if (!connection.isOpen()) {
-			IRunnableWithProgress op = new IRunnableWithProgress() {
-				public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-					try {
-						connection.open(monitor);
-					} catch (RemoteConnectionException e) {
-						throw new InvocationTargetException(e);
-					}
-					if (monitor.isCanceled()) {
-						throw new InterruptedException();
-					}
-				}
-			};
-			try {
-				if (context != null) {
-					context.run(true, true, op);
-				} else {
-					new ProgressMonitorDialog(shell).run(true, true, op);
-				}
-			} catch (InvocationTargetException e) {
-				ErrorDialog.openError(shell, Messages.AbstractRemoteUIConnectionManager_Connection_Error,
-						Messages.AbstractRemoteUIConnectionManager_Could_not_open_connection, new Status(IStatus.ERROR,
-								PTPRemoteUIPlugin.PLUGIN_ID, e.getCause().getMessage()));
-			} catch (InterruptedException e) {
-				ErrorDialog.openError(shell, Messages.AbstractRemoteUIConnectionManager_Connection_Error,
-						Messages.AbstractRemoteUIConnectionManager_Could_not_open_connection, new Status(IStatus.ERROR,
-								PTPRemoteUIPlugin.PLUGIN_ID, e.getMessage()));
-			}
-		}
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/IRemoteUIConnectionManager.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/IRemoteUIConnectionManager.java
deleted file mode 100644
index 04c6bad..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/IRemoteUIConnectionManager.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.ui;
-
-import org.eclipse.jface.operation.IRunnableContext;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Interface for providing connection management operations in the UI. Clients can call these methods to open generic dialogs for
- * operations on connections.
- */
-public interface IRemoteUIConnectionManager {
-	/**
-	 * @since 5.0
-	 */
-	public static String CONNECTION_ADDRESS_HINT = "CONNECTION_ADDRESS_HINT"; //$NON-NLS-1$
-	/**
-	 * @since 5.0
-	 */
-	public static String CONNECTION_PORT_HINT = "CONNECTION_PORT_HINT"; //$NON-NLS-1$
-	/**
-	 * @since 5.0
-	 */
-	public static String CONNECTION_TIMEOUT_HINT = "CONNECTION_TIMEOUT_HINT"; //$NON-NLS-1$
-	/**
-	 * @since 5.0
-	 */
-	public static String LOGIN_USERNAME_HINT = "LOGIN_USERNAME_HINT"; //$NON-NLS-1$
-
-	/**
-	 * Create a new connection. The implementation can choose to do this in any
-	 * way, but typically will use a dialog or wizard.
-	 * 
-	 * @param shell
-	 *            shell used to display dialogs
-	 * @return newly created remote connection or null if none created
-	 */
-	public IRemoteConnection newConnection(Shell shell);
-
-	/**
-	 * Create a new connection using the remote service provider new connection
-	 * dialog. If attrHints and attrHintValues are provided then the dialog will
-	 * attempt to use these values as the default values for the appropriate
-	 * dialog fields.
-	 * 
-	 * @param shell
-	 *            shell used to display dialog
-	 * @param attrHints
-	 *            array containing attribute hints
-	 * @param attrHintValues
-	 *            array containing default values for each attribute specified
-	 *            in attrHints
-	 * @return the newly created connection or null if none created
-	 * @since 5.0
-	 */
-	public IRemoteConnection newConnection(Shell shell, String[] attrHints, String[] attrHintValues);
-
-	/**
-	 * Attempt to open a connection using a progress monitor. Can be called on either open or closed connections, and will
-	 * initialize the remote services if necessary. Users should check connection.isOpen() on return to determine if the connection
-	 * was actually opened.
-	 * 
-	 * @param shell
-	 *            shell used to display dialogs
-	 * @param context
-	 *            runnable context for displaying progress indicator. Can be null.
-	 * @param connection
-	 *            connection to open
-	 * @since 5.0
-	 */
-	public void openConnectionWithProgress(Shell shell, IRunnableContext context, IRemoteConnection connection);
-
-	/**
-	 * Change a connection configuration. The implementation can chose to do
-	 * this in any way, but typically will use a dialog or wizard.
-	 * 
-	 * @param shell
-	 *            shell used to display dialogs
-	 * @param connection
-	 *            connection to modify
-	 */
-	public void updateConnection(Shell shell, IRemoteConnection connection);
-}
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/IRemoteUIConstants.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/IRemoteUIConstants.java
deleted file mode 100644
index ae70e35..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/IRemoteUIConstants.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.ui;
-
-/**
- * Constants use by UI operations.
- */
-public interface IRemoteUIConstants {
-	/**
-	 * A constant indicating that no bits are set.
-	 */
-	public static int NONE = 0;
-
-	/**
-	 * A constant used to indicate a dialog used for opening files.
-	 */
-	public static int OPEN = 1 << 1;
-
-	/**
-	 * A constant used to indicate a dialog should be used for saving files.
-	 */
-	public static int SAVE = 1 << 2;
-}
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/IRemoteUIFileManager.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/IRemoteUIFileManager.java
deleted file mode 100644
index debb57a..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/IRemoteUIFileManager.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.ui;
-
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Interface for providing file management operations in the UI. Clients can call these methods to open generic dialogs for
- * operations on remote resources.
- */
-public interface IRemoteUIFileManager {
-	/**
-	 * Browse for a remote directory. The return value is the path of the
-	 * directory <i>on the remote system</i>.
-	 * 
-	 * Equivalent to {@link org.eclipse.swt.widgets.DirectoryDialog}.
-	 * 
-	 * @param shell
-	 *            workbench shell
-	 * @param message
-	 *            message to display in dialog
-	 * @param initialPath
-	 *            initial path to use when displaying files
-	 * @param flags
-	 *            option settings for dialog (not currently used)
-	 *            valid values are NONE (@see IRemoteUIConstants)
-	 * @return the path to the directory relative to the remote system or null
-	 *         if the browser was cancelled
-	 */
-	public String browseDirectory(Shell shell, String message, String initialPath, int flags);
-
-	/**
-	 * Browse for a remote file. The return value is the path of the file <i>on
-	 * the remote system</i>.
-	 * 
-	 * Equivalent to {@link org.eclipse.swt.widgets.FileDialog}.
-	 * 
-	 * @param shell
-	 *            workbench shell
-	 * @param message
-	 *            message to display in dialog
-	 * @param initialPath
-	 *            initial path to use when displaying files
-	 * @param flags
-	 *            options settings for dialog
-	 *            valid values are NONE, SAVE, or OPEN (@see IRemoteUIConstants)
-	 * @return the path to the file relative to the remote system or null if the
-	 *         browser was cancelled
-	 */
-
-	public String browseFile(Shell shell, String message, String initialPath, int flags);
-
-	/**
-	 * Browse for a set of remote files. The return value is an array of paths
-	 * of the files <i>on the remote system</i>.
-	 * 
-	 * Equivalent to {@link org.eclipse.swt.widgets.FileDialog}.
-	 * 
-	 * @param shell
-	 *            workbench shell
-	 * @param message
-	 *            message to display in dialog
-	 * @param initialPath
-	 *            initial path to use when displaying files
-	 * @param flags
-	 *            options settings for dialog (@see IRemoteUIConstants)
-	 *            valid values are NONE, SAVE, or OPEN (@see IRemoteUIConstants)
-	 * @return the path to the file relative to the remote system or null if the
-	 *         browser was cancelled
-	 */
-	public String[] browseFiles(Shell shell, String message, String initialPath, int flags);
-
-	/**
-	 * Get the last connection that was selected in the browser.
-	 * 
-	 * @return selected connection
-	 */
-	public IRemoteConnection getConnection();
-
-	/**
-	 * Set the connection to use for file browsing
-	 * 
-	 * @param connection
-	 *            connection to use for file browsing
-	 */
-	public void setConnection(IRemoteConnection connection);
-
-	/**
-	 * Show a list of available connections if possible.
-	 * 
-	 * @param enable
-	 *            enable connection list
-	 */
-	public void showConnections(boolean enable);
-}
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/IRemoteUIServices.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/IRemoteUIServices.java
deleted file mode 100644
index bf2cadd..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/IRemoteUIServices.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.ui;
-
-/**
- * Abstraction of a UI remote services provider. Clients obtain this interface using one of the static methods in
- * {@link RemoteUIServices}. The methods on this interface can then be used to access the full range of UI services provided.
- */
-public interface IRemoteUIServices extends IRemoteUIServicesDescriptor {
-	/**
-	 * Get a UI connection manager for managing connections
-	 * 
-	 * @return UI connection manager or null if no connection manager operations are supported
-	 */
-	public IRemoteUIConnectionManager getUIConnectionManager();
-
-	/**
-	 * Get a UI file manager for managing remote files.
-	 * 
-	 * @return UI file manager or null if no file manager operations are supported
-	 */
-	public IRemoteUIFileManager getUIFileManager();
-}
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/IRemoteUIServicesDescriptor.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/IRemoteUIServicesDescriptor.java
deleted file mode 100644
index f3cc4a2..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/IRemoteUIServicesDescriptor.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.ui;
-
-/**
- * Interface representing a remote UI services provider extension. Clients can use this to find out information about the extension
- * without loading it.
- */
-public interface IRemoteUIServicesDescriptor {
-	/**
-	 * Get unique ID of this service. Can be used as a lookup key.
-	 * 
-	 * @return unique ID
-	 */
-	public String getId();
-
-	/**
-	 * Get display name of this service.
-	 * 
-	 * @return display name
-	 */
-	public String getName();
-}
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/IRemoteUIServicesFactory.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/IRemoteUIServicesFactory.java
deleted file mode 100644
index 92460c8..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/IRemoteUIServicesFactory.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.ui;
-
-import org.eclipse.ptp.remote.core.IRemoteServices;
-
-/**
- * Factory for creating instances of a remote UI service provider. Implementors must provide a class implementing this interface
- * when supplying a new remote UI services provider extension.
- */
-public interface IRemoteUIServicesFactory {
-	/**
-	 * @param services
-	 *            remote services
-	 * @return remote services delegate
-	 */
-	public IRemoteUIServices getServices(IRemoteServices services);
-}
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/RemoteUIServices.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/RemoteUIServices.java
deleted file mode 100644
index a15d06e..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/RemoteUIServices.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.ui;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.operation.IRunnableContext;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.ptp.internal.remote.ui.PTPRemoteUIPlugin;
-import org.eclipse.ptp.internal.remote.ui.RemoteUIServicesProxy;
-import org.eclipse.ptp.internal.remote.ui.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Main entry point for accessing remote UI services.
- * 
- * @since 7.0
- */
-public class RemoteUIServices {
-	private static final String EXTENSION_POINT_ID = "remoteUIServices"; //$NON-NLS-1$
-
-	private static Map<String, RemoteUIServicesProxy> fRemoteUIServices = null;
-	private static Map<String, IRemoteServices> fRemoteServices = new HashMap<String, IRemoteServices>();
-
-	/**
-	 * Look up a remote service provider and ensure it is initialized. The method will use the supplied container's progress
-	 * service, or, if null, the platform progress service, in order to allow the initialization to be canceled.
-	 * 
-	 * @param id
-	 *            id of service to locate
-	 * @param context
-	 *            context with progress service, or null to use the platform progress service
-	 * @return remote service or null if the service can't be located or the progress monitor was canceled
-	 * @since 5.0
-	 */
-	public static IRemoteServices getRemoteServices(final String id, IRunnableContext context) {
-		IRemoteServices service = fRemoteServices.get(id);
-		if (service == null) {
-			final IRemoteServices[] remoteService = new IRemoteServices[1];
-			IRunnableWithProgress runnable = new IRunnableWithProgress() {
-				public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-					monitor.beginTask(Messages.RemoteUIServices_Configuring_remote_services, 10);
-					remoteService[0] = RemoteServices.getRemoteServices(id, monitor);
-				}
-			};
-			try {
-				if (context != null) {
-					context.run(true, false, runnable);
-				} else {
-					PlatformUI.getWorkbench().getProgressService().busyCursorWhile(runnable);
-				}
-			} catch (InvocationTargetException e) {
-				// Ignored
-			} catch (InterruptedException e) {
-				// cancelled
-			}
-			service = remoteService[0];
-			if (service != null) {
-				fRemoteServices.put(id, service);
-			}
-		}
-		return service;
-	}
-
-	/**
-	 * Helper method to find UI services that correspond to a particular remote services implementation
-	 * 
-	 * @param services
-	 * @return remote UI services
-	 */
-	public static IRemoteUIServices getRemoteUIServices(IRemoteServices services) {
-		if (fRemoteUIServices == null) {
-			fRemoteUIServices = retrieveRemoteUIServices();
-		}
-
-		/*
-		 * Find the UI services corresponding to services.
-		 */
-		RemoteUIServicesProxy proxy = fRemoteUIServices.get(services.getId());
-		if (proxy != null) {
-			return proxy.getUIServices(services);
-		}
-		return null;
-	}
-
-	/**
-	 * Find and load all remoteUIServices plugins.
-	 */
-	private static Map<String, RemoteUIServicesProxy> retrieveRemoteUIServices() {
-		IExtensionRegistry registry = Platform.getExtensionRegistry();
-		IExtensionPoint extensionPoint = registry.getExtensionPoint(PTPRemoteUIPlugin.getUniqueIdentifier(), EXTENSION_POINT_ID);
-		final IExtension[] extensions = extensionPoint.getExtensions();
-
-		Map<String, RemoteUIServicesProxy> services = new HashMap<String, RemoteUIServicesProxy>(5);
-
-		for (IExtension ext : extensions) {
-			final IConfigurationElement[] elements = ext.getConfigurationElements();
-
-			for (IConfigurationElement ce : elements) {
-				RemoteUIServicesProxy proxy = new RemoteUIServicesProxy(ce);
-				services.put(proxy.getId(), proxy);
-			}
-		}
-
-		return services;
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/RemoteUIServicesUtils.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/RemoteUIServicesUtils.java
deleted file mode 100644
index 33c653a..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/RemoteUIServicesUtils.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 University of Illinois All rights reserved. This program
- * and the accompanying materials are made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html 
- * 	
- * Contributors: 
- * 	Albert L. Rossi - design and implementation
- ******************************************************************************/
-package org.eclipse.ptp.remote.ui;
-
-import java.lang.reflect.InvocationTargetException;
-import java.net.URISyntaxException;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableContext;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.ptp.internal.remote.ui.PTPRemoteUIPlugin;
-import org.eclipse.ptp.internal.remote.ui.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
-import org.eclipse.ptp.remote.ui.widgets.RemoteConnectionWidget;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Convenience methods for handling various actions involving IRemoteUIServices.
- * 
- * @see org.eclipse.ptp.remote.ui.IRemoteUIServices
- * @see org.eclipse.ptp.remote.ui.IRemoteUIFileManager
- * @see org.eclipse.ptp.remote.ui.IRemoteUIConnectionManager
- * 
- * @since 5.0
- * 
- */
-public class RemoteUIServicesUtils {
-	/**
-	 * @param shell
-	 * @param context
-	 * @param connection
-	 * @since 7.0
-	 */
-	public static void openConnectionWithProgress(final Shell shell, IRunnableContext context, final IRemoteConnection connection) {
-		if (!connection.isOpen()) {
-			IRunnableWithProgress op = new IRunnableWithProgress() {
-				public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-					try {
-						connection.open(monitor);
-					} catch (RemoteConnectionException e) {
-						throw new InvocationTargetException(e);
-					}
-					if (monitor.isCanceled()) {
-						throw new InterruptedException();
-					}
-				}
-			};
-			try {
-				if (context != null) {
-					context.run(true, true, op);
-				} else {
-					new ProgressMonitorDialog(shell).run(true, true, op);
-				}
-			} catch (InvocationTargetException e) {
-				ErrorDialog.openError(shell, Messages.AbstractRemoteUIConnectionManager_Connection_Error,
-						Messages.AbstractRemoteUIConnectionManager_Could_not_open_connection, new Status(IStatus.ERROR,
-								PTPRemoteUIPlugin.PLUGIN_ID, e.getCause().getMessage()));
-			} catch (InterruptedException e) {
-				ErrorDialog.openError(shell, Messages.AbstractRemoteUIConnectionManager_Connection_Error,
-						Messages.AbstractRemoteUIConnectionManager_Could_not_open_connection, new Status(IStatus.ERROR,
-								PTPRemoteUIPlugin.PLUGIN_ID, e.getMessage()));
-			}
-		}
-	}
-
-	/**
-	 * Used to configure the default host and port in the wizard used for
-	 * choosing a resource manager connection.
-	 * 
-	 * @see org.eclipse.ptp.remote.ui.widgets.RemoteConnectionWidget
-	 * 
-	 * @param connectionWidget
-	 *            the widget allowing the user to choose the connection
-	 * @param connection
-	 *            name of the connection
-	 * @throws URISyntaxException
-	 */
-	public static void setConnectionHints(RemoteConnectionWidget connectionWidget, IRemoteConnection connection)
-			throws URISyntaxException {
-		Map<String, String> result = new HashMap<String, String>();
-		result.put(IRemoteUIConnectionManager.CONNECTION_ADDRESS_HINT, connection.getAddress());
-		result.put(IRemoteUIConnectionManager.LOGIN_USERNAME_HINT, connection.getUsername());
-		result.put(IRemoteUIConnectionManager.CONNECTION_PORT_HINT, String.valueOf(connection.getPort()));
-		String[] hints = new String[result.size()];
-		String[] defaults = new String[hints.length];
-		int i = 0;
-		for (String s : result.keySet()) {
-			hints[i] = s;
-			defaults[i++] = result.get(s);
-		}
-		connectionWidget.setHints(hints, defaults);
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/dialogs/RemoteResourceBrowser.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/dialogs/RemoteResourceBrowser.java
deleted file mode 100644
index acd3238..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/dialogs/RemoteResourceBrowser.java
+++ /dev/null
@@ -1,509 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008,2013 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.ui.dialogs;
-
-import java.util.Vector;
-
-import org.eclipse.core.filesystem.IFileStore;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.ptp.internal.remote.ui.DeferredFileStore;
-import org.eclipse.ptp.internal.remote.ui.RemoteContentProvider;
-import org.eclipse.ptp.internal.remote.ui.RemoteResourceComparator;
-import org.eclipse.ptp.internal.remote.ui.RemoteUIImages;
-import org.eclipse.ptp.internal.remote.ui.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.ui.IRemoteUIConnectionManager;
-import org.eclipse.ptp.remote.ui.RemoteUIServices;
-import org.eclipse.ptp.remote.ui.widgets.RemoteConnectionWidget;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-import org.eclipse.ui.progress.PendingUpdateAdapter;
-
-/**
- * Generic file/directory browser for remote resources.
- * 
- * @author greg
- * 
- */
-public class RemoteResourceBrowser extends Dialog {
-	public final static String EMPTY_STRING = ""; //$NON-NLS-1$
-	public final static int FILE_BROWSER = 0x01;
-	public final static int DIRECTORY_BROWSER = 0x02;
-	public static final int SINGLE = 0x01;
-	public static final int MULTI = 0x02;
-
-	private final static int widthHint = 300;
-	private final static int heightHint = 300;
-
-	private Tree tree = null;
-	private TreeViewer treeViewer;
-	private Text remotePathText;
-	private Button okButton;
-	private Button upButton;
-	private Button newFolderButton;
-	private RemoteConnectionWidget fRemoteConnectionWidget;
-
-	private int browserType;
-	private String dialogTitle;
-	private String dialogLabel;
-
-	private boolean showConnections = false;
-	private boolean showHidden = false;
-	private String remotePath = EMPTY_STRING;
-	private String remotePaths[];
-	private String fInitialPath;
-	private IPath fRootPath;
-	private final IRemoteServices fServices;
-	private IRemoteFileManager fFileMgr;
-	private IRemoteConnection fConnection;
-	private final IRemoteUIConnectionManager fUIConnMgr;
-	private int optionFlags = SINGLE;
-
-	public RemoteResourceBrowser(IRemoteServices services, IRemoteConnection conn, Shell parent, int flags) {
-		super(parent);
-		setShellStyle(SWT.RESIZE | getShellStyle());
-		fServices = services;
-		fConnection = conn;
-		this.optionFlags = flags;
-		if (conn == null) {
-			showConnections = true;
-		}
-		fUIConnMgr = RemoteUIServices.getRemoteUIServices(services).getUIConnectionManager();
-		setTitle(Messages.RemoteResourceBrowser_resourceTitle);
-		setType(FILE_BROWSER | DIRECTORY_BROWSER);
-	}
-
-	/**
-	 * Change the viewers input. Called when a new connection is selected.
-	 * 
-	 * @param conn
-	 *            new connection
-	 * @return true if input successfully changed
-	 */
-	private boolean changeInput(final IRemoteConnection conn) {
-		if (conn == null) {
-			return false;
-		}
-
-		fUIConnMgr.openConnectionWithProgress(getShell(), null, conn);
-		if (!conn.isOpen()) {
-			return false;
-		}
-
-		fFileMgr = fServices.getFileManager(conn);
-		if (fFileMgr != null) {
-			/*
-			 * Note: the call to findInitialPath must happen before the
-			 * treeViewer input is set or the treeViewer fails. No idea why this
-			 * is.
-			 */
-			String cwd = conn.getWorkingDirectory();
-			IPath initial = findInitialPath(cwd, fInitialPath);
-
-			// TODO: not platform independent - needs IRemotePath
-			setRoot(initial.toString());
-
-			fConnection = conn;
-			return true;
-		}
-
-		return false;
-	}
-
-	/**
-	 * When a new connection is selected, make sure it is open before using it.
-	 */
-	private void connectionSelected() {
-		/*
-		 * Make sure the connection is open before we try and read from the
-		 * connection.
-		 */
-		final IRemoteConnection conn = fRemoteConnectionWidget.getConnection();
-		if (!changeInput(conn)) {
-			/*
-			 * Reset combo back to the previous selection
-			 */
-			fRemoteConnectionWidget.setConnection(fConnection);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.jface.dialogs.Dialog#createButton(org.eclipse.swt.widgets
-	 * .Composite, int, java.lang.String, boolean)
-	 */
-	@Override
-	protected Button createButton(Composite parent, int id, String label, boolean defaultButton) {
-		Button button = super.createButton(parent, id, label, defaultButton);
-		if (id == IDialogConstants.OK_ID) {
-			okButton = button;
-		}
-		return button;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.jface.dialogs.Dialog#createContents(org.eclipse.swt.widgets
-	 * .Composite)
-	 */
-	@Override
-	protected Control createContents(Composite parent) {
-		Control contents = super.createContents(parent);
-		setTitle(dialogTitle);
-		remotePathText.setText(remotePath);
-		if (!showConnections) {
-			changeInput(fConnection);
-		}
-		return contents;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets
-	 * .Composite)
-	 */
-	@Override
-	protected Control createDialogArea(Composite parent) {
-		Composite main = (Composite) super.createDialogArea(parent);
-
-		final Composite dialogComp = new Composite(main, SWT.NONE);
-		dialogComp.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 4;
-		dialogComp.setLayout(layout);
-
-		if (showConnections) {
-			fRemoteConnectionWidget = new RemoteConnectionWidget(dialogComp, SWT.NONE, null,
-					RemoteConnectionWidget.FLAG_NO_LOCAL_SELECTION, null);
-			fRemoteConnectionWidget.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 4, 1));
-			fRemoteConnectionWidget.addSelectionListener(new SelectionAdapter() {
-				@Override
-				public void widgetSelected(SelectionEvent event) {
-					connectionSelected();
-					updateDialog();
-				}
-			});
-		}
-
-		Label label = new Label(dialogComp, SWT.NONE);
-		label.setText(dialogLabel);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = 1;
-		label.setLayoutData(gd);
-
-		remotePathText = new Text(dialogComp, SWT.BORDER | SWT.SINGLE);
-		remotePathText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				remotePath = remotePathText.getText();
-				updateDialog();
-			}
-		});
-		remotePathText.addFocusListener(new FocusListener() {
-			public void focusGained(FocusEvent e) {
-				getShell().setDefaultButton(null); // allow text widget to receive SWT.DefaultSelection event
-			}
-
-			public void focusLost(FocusEvent e) {
-				getShell().setDefaultButton(okButton);
-			}
-		});
-		remotePathText.addSelectionListener(new SelectionAdapter() {
-			@Override
-			public void widgetDefaultSelected(SelectionEvent e) {
-				remotePathText.setSelection(remotePathText.getText().length());
-				setRoot(remotePathText.getText());
-			}
-
-		});
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.widthHint = widthHint;
-		remotePathText.setLayoutData(gd);
-
-		upButton = new Button(dialogComp, SWT.PUSH | SWT.FLAT);
-		upButton.setImage(RemoteUIImages.get(RemoteUIImages.IMG_ELCL_UP_NAV));
-		upButton.setToolTipText(Messages.RemoteResourceBrowser_UpOneLevel);
-		upButton.addSelectionListener(new SelectionAdapter() {
-			@Override
-			public void widgetSelected(SelectionEvent e) {
-				if (!fRootPath.isRoot()) {
-					setRoot(fRootPath.removeLastSegments(1).toOSString());
-				}
-			}
-		});
-		// new folder: See Bug 396334
-		newFolderButton = new Button(dialogComp, SWT.PUSH | SWT.FLAT);
-		newFolderButton.setImage(RemoteUIImages.get(RemoteUIImages.IMG_ELCL_NEW_FOLDER));
-		newFolderButton.setToolTipText(Messages.RemoteResourceBrowser_NewFolder);
-		newFolderButton.addSelectionListener(new SelectionAdapter() {
-			@Override
-			public void widgetSelected(SelectionEvent e) {
-				String pathText = remotePathText.getText();
-				String newname = "/newfolder"; //$NON-NLS-1$  
-				remotePathText.setText(pathText + newname);
-				remotePathText.setSelection(pathText.length() + 1, pathText.length() + newname.length());
-				remotePathText.setFocus();
-			}
-		});
-
-		if ((optionFlags & MULTI) == MULTI) {
-			tree = new Tree(main, SWT.MULTI | SWT.BORDER);
-		} else {
-			tree = new Tree(main, SWT.SINGLE | SWT.BORDER);
-		}
-
-		gd = new GridData(GridData.FILL_BOTH);
-		gd.horizontalSpan = 4;
-		// see bug 158380
-		gd.heightHint = Math.max(main.getParent().getSize().y, heightHint);
-		tree.setLayoutData(gd);
-
-		treeViewer = new TreeViewer(tree);
-		treeViewer.setContentProvider(new RemoteContentProvider());
-		treeViewer.setLabelProvider(new WorkbenchLabelProvider());
-		treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				ISelection selection = event.getSelection();
-				if (!selection.isEmpty() && selection instanceof IStructuredSelection) {
-					IStructuredSelection ss = (IStructuredSelection) selection;
-					Object element = ss.getFirstElement();
-					if (element instanceof DeferredFileStore) {
-						DeferredFileStore dfs = (DeferredFileStore) element;
-						remotePathText.setText(dfs.getFileStore().toURI().getPath());
-					}
-					Vector<String> selectedPaths = new Vector<String>(ss.size());
-					for (Object currentSelection : ss.toArray()) {
-						if (currentSelection instanceof DeferredFileStore) {
-							selectedPaths.add(((DeferredFileStore) currentSelection).getFileStore().toURI().getPath());
-						}
-					}
-					remotePaths = selectedPaths.toArray(new String[0]);
-				}
-			}
-		});
-		treeViewer.setComparator(new RemoteResourceComparator());
-		treeViewer.addDoubleClickListener(new IDoubleClickListener() {
-			public void doubleClick(DoubleClickEvent event) {
-				IStructuredSelection s = (IStructuredSelection) event.getSelection();
-				Object o = s.getFirstElement();
-				if (treeViewer.isExpandable(o)) {
-					treeViewer.setExpandedState(o, !treeViewer.getExpandedState(o));
-				}
-			}
-
-		});
-		if (browserType == DIRECTORY_BROWSER) {
-			treeViewer.addFilter(new ViewerFilter() {
-				@Override
-				public boolean select(Viewer viewer, Object parentElement, Object element) {
-					if ((element instanceof DeferredFileStore)) {
-						return ((DeferredFileStore) element).isContainer();
-					}
-					return element instanceof PendingUpdateAdapter;
-				}
-			});
-		}
-
-		final Button showHiddenButton = new Button(main, SWT.CHECK);
-		showHiddenButton.setText(Messages.RemoteResourceBrowser_Show_hidden_files);
-		showHiddenButton.addSelectionListener(new SelectionAdapter() {
-			@Override
-			public void widgetSelected(SelectionEvent e) {
-				showHidden = showHiddenButton.getSelection();
-				setRoot(fRootPath.toString());
-			}
-		});
-
-		updateDialog();
-
-		return main;
-	}
-
-	/**
-	 * Determine the initial path for the browser. If the initial path is not
-	 * supplied or does not exist on the remote machine, then the initial path
-	 * will be the cwd.
-	 * 
-	 * @param cwd
-	 * @param initialPath
-	 * @return initial path
-	 */
-	private IPath findInitialPath(String cwd, String initialPath) {
-		if (initialPath != null) {
-			IPath path = new Path(initialPath);
-			if (!path.isAbsolute()) {
-				path = new Path(cwd).append(path);
-			}
-			if (fFileMgr.getResource(path.toString()).fetchInfo().exists()) {
-				return path;
-			}
-		}
-		return new Path(cwd);
-	}
-
-	/**
-	 * Get the connection that was selected
-	 * 
-	 * @return selected connection
-	 */
-	public IRemoteConnection getConnection() {
-		return fConnection;
-	}
-
-	/**
-	 * Get the path that was selected.
-	 * 
-	 * @return selected path
-	 */
-	public String getPath() {
-		if (remotePath.equals("")) { //$NON-NLS-1$
-			return null;
-		}
-		return remotePath;
-	}
-
-	/**
-	 * Get the paths that were selected.
-	 * 
-	 * @return selected paths
-	 */
-	public String[] getPaths() {
-		return remotePaths;
-	}
-
-	/**
-	 * Set the initial path to start browsing. This will be set in the browser
-	 * text field, and in a future version should expand the browser to this
-	 * location if it exists.
-	 * 
-	 * @param path
-	 */
-	public void setInitialPath(String path) {
-		fInitialPath = path;
-	}
-
-	/**
-	 * Set the root directory for the browser. This will also update the text
-	 * field with the path.
-	 * 
-	 * @param path
-	 *            path of root directory
-	 */
-	private void setRoot(String path) {
-		if (fFileMgr != null) {
-			IFileStore root = fFileMgr.getResource(path);
-			treeViewer.setInput(new DeferredFileStore(root, !showHidden));
-			remotePathText.setText(path);
-			remotePathText.setSelection(remotePathText.getText().length());
-			fRootPath = new Path(path);
-		}
-	}
-
-	/**
-	 * Set the dialogTitle of the dialog.
-	 * 
-	 * @param title
-	 */
-	public void setTitle(String title) {
-		dialogTitle = title;
-		if (dialogTitle == null) {
-			dialogTitle = ""; //$NON-NLS-1$
-		}
-		Shell shell = getShell();
-		if ((shell != null) && !shell.isDisposed()) {
-			shell.setText(dialogTitle);
-		}
-	}
-
-	/**
-	 * Set the type of browser. Can be either a file browser (allows selection
-	 * of files) or a directory browser (allows selection of directories), or
-	 * both.
-	 */
-	public void setType(int type) {
-		browserType = type;
-		if (type == FILE_BROWSER) {
-			dialogLabel = Messages.RemoteResourceBrowser_fileLabel;
-			setTitle(Messages.RemoteResourceBrowser_fileTitle);
-		} else if (type == DIRECTORY_BROWSER) {
-			dialogLabel = Messages.RemoteResourceBrowser_directoryLabel;
-			setTitle(Messages.RemoteResourceBrowser_directoryTitle);
-		} else {
-			dialogLabel = Messages.RemoteResourceBrowser_resourceLabel;
-			setTitle(Messages.RemoteResourceBrowser_resourceTitle);
-		}
-	}
-
-	/**
-	 * Show available connections on browser if possible.
-	 * 
-	 * @param enable
-	 */
-	public void showConnections(boolean enable) {
-		this.showConnections = enable;
-	}
-
-	private void updateDialog() {
-		if (okButton != null && upButton != null && newFolderButton != null) {
-			okButton.setEnabled(false);
-			upButton.setEnabled(false);
-			newFolderButton.setEnabled(false);
-
-			if (fConnection != null) {
-				if (remotePathText != null) {
-					String pathText = remotePathText.getText();
-					if (!pathText.equals(EMPTY_STRING)) {
-						okButton.setEnabled(true);
-						newFolderButton.setEnabled(true);
-						IPath path = new Path(pathText);
-						if (!path.isRoot()) {
-							upButton.setEnabled(true);
-						}
-					}
-				}
-			}
-		}
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/widgets/RemoteConnectionWidget.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/widgets/RemoteConnectionWidget.java
deleted file mode 100644
index 9976525..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/widgets/RemoteConnectionWidget.java
+++ /dev/null
@@ -1,622 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Greg Watson - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.ui.widgets;
-
-import java.util.Arrays;
-import java.util.Comparator;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.jface.operation.IRunnableContext;
-import org.eclipse.ptp.internal.remote.core.PTPRemoteCorePlugin;
-import org.eclipse.ptp.internal.remote.core.RemoteServicesImpl;
-import org.eclipse.ptp.internal.remote.core.RemoteServicesProxy;
-import org.eclipse.ptp.internal.remote.core.preferences.Preferences;
-import org.eclipse.ptp.internal.remote.ui.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemotePreferenceConstants;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
-import org.eclipse.ptp.remote.ui.IRemoteUIConnectionManager;
-import org.eclipse.ptp.remote.ui.RemoteUIServices;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-
-/**
- * Widget to allow the user to select a service provider and connection. Provides a "New" button to create a new connection.
- * 
- * If title is supplied then the widget will be placed in a group.
- * 
- * @since 5.0
- * 
- */
-public class RemoteConnectionWidget extends Composite {
-	/**
-	 * Listener for widget selected events. Allows the events to be enabled/disabled.
-	 * 
-	 */
-	protected class WidgetListener implements SelectionListener {
-		/** State of the listener (enabled/disabled). */
-		private boolean listenerEnabled = true;
-
-		/**
-		 * Disable listener, received events shall be ignored.
-		 */
-		public void disable() {
-			setEnabled(false);
-		}
-
-		protected void doWidgetDefaultSelected(SelectionEvent e) {
-			// Default empty implementation.
-		}
-
-		/**
-		 * Enable the listener to handle events.
-		 */
-		public void enable() {
-			setEnabled(true);
-		}
-
-		/**
-		 * Test if the listener is enabled.
-		 */
-		public synchronized boolean isEnabled() {
-			return listenerEnabled;
-		}
-
-		/**
-		 * Set listener enabled state
-		 * 
-		 * @param enabled
-		 */
-		public synchronized void setEnabled(boolean enabled) {
-			listenerEnabled = enabled;
-		}
-
-		public void widgetDefaultSelected(SelectionEvent e) {
-			if (isEnabled()) {
-				widgetSelected(e);
-			}
-		}
-
-		public void widgetSelected(SelectionEvent e) {
-			if (isEnabled()) {
-				Object source = e.getSource();
-				if (source == fServicesCombo) {
-					handleRemoteServiceSelected(null);
-				} else if (source == fConnectionCombo) {
-					handleConnectionSelected();
-				} else if (source == fNewConnectionButton) {
-					handleNewRemoteConnectionSelected();
-				} else if (source == fLocalButton) {
-					handleButtonSelected();
-				}
-			}
-		}
-
-	}
-
-	/**
-	 * Force the use of a remote provider dialog, regardless of the PRE_REMOTE_SERVICES_ID preference setting.
-	 * 
-	 * @since 7.0
-	 */
-	public static int FLAG_FORCE_PROVIDER_SELECTION = 1 << 0;
-
-	/**
-	 * Do not provide a selection for local services.
-	 * 
-	 * @since 7.0
-	 */
-	public static int FLAG_NO_LOCAL_SELECTION = 1 << 1;
-
-	private static final String EMPTY_STRING = ""; //$NON-NLS-1$
-
-	private Combo fServicesCombo = null;
-	private Button fLocalButton;
-	private Button fRemoteButton;
-	private final Combo fConnectionCombo;
-	private final Button fNewConnectionButton;
-
-	private final RemoteServicesProxy[] fRemoteServices;
-	private IRemoteConnection fSelectedConnection;
-	private IRemoteServices fDefaultServices;
-	private boolean fSelectionListernersEnabled = true;
-	private boolean fEnabled = true;
-
-	private final IRunnableContext fContext;
-
-	private String[] fAttrHints;
-	private String[] fAttrHintValues;
-
-	private final ListenerList fSelectionListeners = new ListenerList();
-	private final WidgetListener fWidgetListener = new WidgetListener();
-
-	/**
-	 * Constructor
-	 * 
-	 * @param parent
-	 *            parent composite
-	 * @param style
-	 *            style or SWT.NONE
-	 * @param title
-	 *            if a title is supplied then the widget will be placed in a group. Can be null.
-	 * @param flags
-	 *            a combination of flags that modify the behavior of the widget.
-	 * @param context
-	 *            runnable context, or null
-	 * @since 7.0
-	 */
-	public RemoteConnectionWidget(Composite parent, int style, String title, int flags, IRunnableContext context) {
-		super(parent, style);
-		fContext = context;
-
-		Composite body = this;
-
-		GridLayout layout = new GridLayout(1, false);
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		layout.numColumns = 4;
-
-		if (title != null) {
-			Group group = new Group(this, SWT.NONE);
-			group.setText(title);
-			GridLayout groupLayout = new GridLayout(1, false);
-			groupLayout.marginHeight = 0;
-			groupLayout.marginWidth = 0;
-			groupLayout.numColumns = 4;
-			group.setLayout(groupLayout);
-			group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-			layout.numColumns = 1;
-			body = group;
-		}
-
-		setLayout(layout);
-		setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
-		/*
-		 * Check if we need a remote services combo, or we should just use the default provider
-		 */
-		if ((flags & FLAG_FORCE_PROVIDER_SELECTION) == 0) {
-			String id = Preferences.getString(PTPRemoteCorePlugin.getUniqueIdentifier(),
-					IRemotePreferenceConstants.PREF_REMOTE_SERVICES_ID);
-			if (id != null) {
-				fDefaultServices = getRemoteServices(id);
-			}
-		}
-
-		if (fDefaultServices == null) {
-			/*
-			 * Remote provider
-			 */
-			Label label = new Label(body, SWT.NONE);
-			label.setText(Messages.RemoteConnectionWidget_remoteServiceProvider);
-			GridData gd = new GridData();
-			gd.horizontalSpan = 1;
-			label.setLayoutData(gd);
-
-			fServicesCombo = new Combo(body, SWT.DROP_DOWN | SWT.READ_ONLY);
-			gd = new GridData(GridData.FILL_HORIZONTAL);
-			gd.horizontalSpan = 3;
-			fServicesCombo.setLayoutData(gd);
-			fServicesCombo.addSelectionListener(fWidgetListener);
-			fServicesCombo.setFocus();
-		}
-
-		if ((flags & FLAG_NO_LOCAL_SELECTION) == 0 && (flags & FLAG_FORCE_PROVIDER_SELECTION) == 0) {
-			fLocalButton = new Button(body, SWT.RADIO);
-			fLocalButton.setText(Messages.RemoteConnectionWidget_Local);
-			GridData data = new GridData();
-			data.horizontalSpan = 1;
-			fLocalButton.setLayoutData(data);
-			fLocalButton.addSelectionListener(fWidgetListener);
-			fLocalButton.setSelection(false);
-
-			fRemoteButton = new Button(body, SWT.RADIO);
-			fRemoteButton.setText(Messages.RemoteConnectionWidget_Remote);
-			data = new GridData();
-			data.horizontalSpan = 1;
-			fRemoteButton.setLayoutData(data);
-		} else {
-			Label remoteLabel = new Label(body, SWT.NONE);
-			remoteLabel.setText(Messages.RemoteConnectionWidget_connectionName);
-			GridData gd = new GridData();
-			gd.horizontalSpan = 1;
-			remoteLabel.setLayoutData(gd);
-		}
-
-		fConnectionCombo = new Combo(body, SWT.DROP_DOWN | SWT.READ_ONLY);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = 1;
-		fConnectionCombo.setLayoutData(gd);
-		fConnectionCombo.addSelectionListener(fWidgetListener);
-		if (fDefaultServices != null) {
-			fConnectionCombo.setFocus();
-		}
-		fConnectionCombo.setEnabled(false);
-
-		fNewConnectionButton = new Button(body, SWT.PUSH);
-		fNewConnectionButton.setText(Messages.RemoteConnectionWidget_new);
-		gd = new GridData();
-		fNewConnectionButton.setLayoutData(gd);
-		fNewConnectionButton.addSelectionListener(fWidgetListener);
-
-		fRemoteServices = RemoteServicesImpl.getRemoteServiceProxies();
-
-		if (fServicesCombo != null) {
-			initializeRemoteServicesCombo(null);
-		}
-
-		handleRemoteServiceSelected(null);
-
-		if (fLocalButton != null) {
-			handleButtonSelected();
-		}
-	}
-
-	/**
-	 * Adds the listener to the collection of listeners who will be notified when the user changes the receiver's selection, by
-	 * sending it one of the messages defined in the <code>SelectionListener</code> interface.
-	 * <p>
-	 * <code>widgetSelected</code> is called when the user changes the service provider or connection.
-	 * </p>
-	 * 
-	 * @param listener
-	 *            the listener which should be notified
-	 */
-	public void addSelectionListener(SelectionListener listener) {
-		fSelectionListeners.add(listener);
-	}
-
-	/**
-	 * Get the new button from the widget
-	 * 
-	 * @return button
-	 * @since 7.0
-	 */
-	public Button getButton() {
-		return fNewConnectionButton;
-	}
-
-	/**
-	 * Get the connection that is currently selected in the widget, or null if there is no selected connection.
-	 * 
-	 * @return selected connection
-	 */
-	public IRemoteConnection getConnection() {
-		return fSelectedConnection;
-	}
-
-	private IRemoteConnection getRemoteConnection(IRemoteServices services, String name) {
-		IRemoteConnectionManager manager = getRemoteConnectionManager(services);
-		if (manager != null) {
-			return manager.getConnection(name);
-		}
-		return null;
-	}
-
-	private IRemoteConnection getRemoteConnection(String name) {
-		IRemoteServices services = getSelectedServices();
-		if (fDefaultServices != null && name.equals(IRemoteConnectionManager.LOCAL_CONNECTION_NAME)) {
-			services = RemoteServices.getLocalServices();
-		}
-		return getRemoteConnection(services, name);
-	}
-
-	protected IRemoteConnectionManager getRemoteConnectionManager(IRemoteServices services) {
-		if (services != null) {
-			return services.getConnectionManager();
-		}
-		return null;
-	}
-
-	protected IRemoteServices getRemoteServices(String id) {
-		if (id != null && !id.equals(EMPTY_STRING)) {
-			return RemoteUIServices.getRemoteServices(id, fContext);
-		}
-		return null;
-	}
-
-	private IRemoteServices getSelectedServices() {
-		if (fDefaultServices != null) {
-			return fDefaultServices;
-		}
-		int selectionIndex = fServicesCombo.getSelectionIndex();
-		if (fRemoteServices.length > 0 && selectionIndex > 0) {
-			return RemoteServices.getRemoteServices(fRemoteServices[selectionIndex - 1].getId());
-		}
-		return null;
-	}
-
-	private IRemoteUIConnectionManager getUIConnectionManager() {
-		IRemoteServices services = getSelectedServices();
-		if (services != null) {
-			return RemoteUIServices.getRemoteUIServices(services).getUIConnectionManager();
-		}
-		return null;
-	}
-
-	private void handleButtonSelected() {
-		fRemoteButton.setSelection(!fLocalButton.getSelection());
-		updateEnablement();
-		handleConnectionSelected();
-	}
-
-	/**
-	 * Handle the section of a new connection. Update connection option buttons appropriately.
-	 */
-	protected void handleConnectionSelected() {
-		final boolean enabled = fWidgetListener.isEnabled();
-		fWidgetListener.disable();
-		IRemoteConnection selectedConnection = null;
-		if (fLocalButton != null && fLocalButton.getSelection()) {
-			selectedConnection = RemoteServices.getLocalServices().getConnectionManager()
-					.getConnection(IRemoteConnectionManager.LOCAL_CONNECTION_NAME);
-		} else {
-			int currentSelection = fConnectionCombo.getSelectionIndex();
-			if (currentSelection > 0) {
-				String connectionName = fConnectionCombo.getItem(currentSelection);
-				selectedConnection = getRemoteConnection(connectionName);
-			}
-		}
-		if (selectedConnection == null || fSelectedConnection == null
-				|| !selectedConnection.getName().equals(fSelectedConnection.getName())) {
-			fSelectedConnection = selectedConnection;
-			Event evt = new Event();
-			evt.widget = this;
-			notifyListeners(new SelectionEvent(evt));
-		}
-		fWidgetListener.setEnabled(enabled);
-	}
-
-	/**
-	 * Handle creation of a new connection by pressing the 'New...' button. Calls handleRemoteServicesSelected() to update the
-	 * connection combo with the new connection.
-	 * 
-	 * TODO should probably select the new connection
-	 */
-	protected void handleNewRemoteConnectionSelected() {
-		if (getUIConnectionManager() != null) {
-			IRemoteConnection conn = getUIConnectionManager().newConnection(getShell(), fAttrHints, fAttrHintValues);
-			if (conn != null) {
-				handleRemoteServiceSelected(conn);
-				handleConnectionSelected();
-			}
-		}
-	}
-
-	/**
-	 * Handle selection of a new remote services provider from the remote services combo. Handles the special case where the
-	 * services combo is null and a local connection is supplied. In this case, the selected services are not changed.
-	 * 
-	 * The assumption is that this will trigger a call to the selection handler for the connection combo.
-	 * 
-	 * @param conn
-	 *            connection to select as current. If conn is null, select the first item in the list.
-	 * @param notify
-	 *            if true, notify handlers that the connection has changed. This should only happen if the user changes the
-	 *            connection.
-	 */
-	protected void handleRemoteServiceSelected(IRemoteConnection conn) {
-		final boolean enabled = fWidgetListener.isEnabled();
-		fWidgetListener.disable();
-		try {
-			IRemoteServices selectedServices = getSelectedServices();
-			if (conn != null) {
-				selectedServices = conn.getRemoteServices();
-			}
-
-			/*
-			 * If a connection was supplied, set its remote service provider in the combo. Otherwise use the currently selected
-			 * service.
-			 */
-			if (fDefaultServices == null && conn != null) {
-				for (int index = 0; index < fRemoteServices.length; index++) {
-					if (fRemoteServices[index].getId().equals(selectedServices.getId())) {
-						fServicesCombo.select(index + 1);
-						break;
-					}
-				}
-			}
-
-			fConnectionCombo.removeAll();
-			fConnectionCombo.add(Messages.RemoteConnectionWidget_selectConnection);
-
-			if (selectedServices == null) {
-				fConnectionCombo.select(0);
-				fConnectionCombo.setEnabled(false);
-				fNewConnectionButton.setEnabled(false);
-			} else {
-				fConnectionCombo.setEnabled(true);
-
-				IRemoteConnectionManager connectionManager = selectedServices.getConnectionManager();
-
-				/*
-				 * Populate the connection combo and select the connection
-				 */
-				IRemoteConnection[] connections = connectionManager.getConnections();
-				Arrays.sort(connections, new Comparator<IRemoteConnection>() {
-					public int compare(IRemoteConnection c1, IRemoteConnection c2) {
-						return c1.getName().compareToIgnoreCase(c2.getName());
-					}
-				});
-				int selected = 0;
-				int offset = 1;
-
-				for (int i = 0; i < connections.length; i++) {
-					fConnectionCombo.add(connections[i].getName());
-					if (conn != null && connections[i].getName().equals(conn.getName())) {
-						selected = i + offset;
-					}
-				}
-
-				fConnectionCombo.select(selected);
-				handleConnectionSelected();
-
-				/*
-				 * Enable 'new' button if new connections are supported
-				 */
-				fNewConnectionButton.setEnabled(selectedServices.canCreateConnections());
-			}
-		} finally {
-			fWidgetListener.setEnabled(enabled);
-		}
-	}
-
-	/**
-	 * Initialize the contents of the remote services combo. Keeps an array of remote services that matches the combo elements.
-	 * Returns the id of the selected element.
-	 * 
-	 * @since 6.0
-	 */
-	protected void initializeRemoteServicesCombo(String id) {
-		final boolean enabled = fWidgetListener.isEnabled();
-		fWidgetListener.disable();
-		IRemoteServices defService = null;
-		if (id != null) {
-			defService = getRemoteServices(id);
-		}
-		Arrays.sort(fRemoteServices, new Comparator<RemoteServicesProxy>() {
-			public int compare(RemoteServicesProxy c1, RemoteServicesProxy c2) {
-				return c1.getName().compareToIgnoreCase(c2.getName());
-			}
-		});
-		fServicesCombo.removeAll();
-		int offset = 1;
-		int defIndex = 0;
-		fServicesCombo.add(Messages.RemoteConnectionWidget_selectRemoteProvider);
-		for (int i = 0; i < fRemoteServices.length; i++) {
-			fServicesCombo.add(fRemoteServices[i].getName());
-			if (defService != null && fRemoteServices[i].equals(defService)) {
-				defIndex = i + offset;
-			}
-		}
-		if (fRemoteServices.length > 0) {
-			fServicesCombo.select(defIndex);
-		}
-		fWidgetListener.setEnabled(enabled);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.widgets.Control#isEnabled()
-	 */
-	@Override
-	public boolean isEnabled() {
-		return fEnabled;
-	}
-
-	private void notifyListeners(SelectionEvent e) {
-		if (fSelectionListernersEnabled) {
-			for (Object listener : fSelectionListeners.getListeners()) {
-				((SelectionListener) listener).widgetSelected(e);
-			}
-		}
-	}
-
-	/**
-	 * Remove a listener that will be notified when one of the widget's controls are selected
-	 * 
-	 * @param listener
-	 *            listener to remove
-	 */
-	public void removeSelectionListener(SelectionListener listener) {
-		fSelectionListeners.remove(listener);
-	}
-
-	/**
-	 * Set the connection that should be selected in the widget.
-	 * 
-	 * @param connection
-	 *            connection to select
-	 */
-	public void setConnection(IRemoteConnection connection) {
-		fSelectionListernersEnabled = false;
-		if (fLocalButton != null && connection != null && connection.getRemoteServices() == RemoteServices.getLocalServices()) {
-			fLocalButton.setSelection(true);
-			handleButtonSelected();
-		} else {
-			handleRemoteServiceSelected(connection);
-		}
-		handleConnectionSelected();
-		updateEnablement();
-		fSelectionListernersEnabled = true;
-	}
-
-	/**
-	 * Set the connection that should be selected in the widget.
-	 * 
-	 * @param id
-	 *            remote services id
-	 * @param name
-	 *            connection name
-	 * @since 6.0
-	 */
-	public void setConnection(String id, String name) {
-		IRemoteServices services = getRemoteServices(id);
-		if (services != null) {
-			IRemoteConnection connection = getRemoteConnection(services, name);
-			if (connection != null) {
-				setConnection(connection);
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.widgets.Control#setEnabled(boolean)
-	 */
-	@Override
-	public void setEnabled(boolean enabled) {
-		fEnabled = enabled;
-		updateEnablement();
-	}
-
-	/**
-	 * Set hints to use when creating a new connection.
-	 * 
-	 * @param attrHints
-	 * @param attrHintValues
-	 */
-	public void setHints(String[] attrHints, String[] attrHintValues) {
-		fAttrHints = attrHints;
-		fAttrHintValues = attrHintValues;
-	}
-
-	private void updateEnablement() {
-		if (fDefaultServices != null) {
-			boolean isRemote = true;
-			if (fLocalButton != null) {
-				fLocalButton.setEnabled(fEnabled);
-				fRemoteButton.setEnabled(fEnabled);
-				isRemote = !fLocalButton.getSelection();
-			}
-			fConnectionCombo.setEnabled(fEnabled && isRemote);
-			fNewConnectionButton.setEnabled(fEnabled && isRemote && fDefaultServices.canCreateConnections());
-		} else {
-			IRemoteServices services = getSelectedServices();
-			fConnectionCombo.setEnabled(fEnabled && services != null);
-			fNewConnectionButton.setEnabled(fEnabled && services != null && services.canCreateConnections());
-			fServicesCombo.setEnabled(fEnabled);
-		}
-	}
-}
diff --git a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/widgets/RemoteDirectoryWidget.java b/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/widgets/RemoteDirectoryWidget.java
deleted file mode 100644
index d5e765e..0000000
--- a/core/org.eclipse.ptp.remote.ui/src/org/eclipse/ptp/remote/ui/widgets/RemoteDirectoryWidget.java
+++ /dev/null
@@ -1,268 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Mike Kucera (IBM) - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.remote.ui.widgets;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.ptp.internal.remote.ui.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.ui.IRemoteUIConnectionManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIFileManager;
-import org.eclipse.ptp.remote.ui.RemoteUIServices;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Widget to allow the user to select a remote directory. Provides a "Browse"
- * button that uses the currently specified connection and a "Restore Default"
- * button to revert to the initial setting.
- * 
- * If title is supplied then the widget will be placed in a group.
- * 
- * The browse message can be modified using {@link #setBrowseMessage(String)}
- * 
- */
-public class RemoteDirectoryWidget extends Composite {
-	// /private final Label label;
-	private final Text text;
-	private final Button browseButton;
-	// private final Button validateButton;
-	private final Button defaultButton;
-
-	private final String fDefaultPath = null;
-	private String fBrowseMessage = Messages.RemoteDirectoryWidget_0;
-	private IRemoteConnection fRemoteConnection;
-	private final ListenerList modifyListeners = new ListenerList();
-
-	private final Map<String, String> previousSelections = new HashMap<String, String>();
-
-	public RemoteDirectoryWidget(Composite parent, int style, String title, String defaultPath) {
-		super(parent, style);
-
-		GridLayout layout = new GridLayout(1, false);
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		setLayout(layout);
-		setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
-		Composite body = this;
-
-		if (title != null) {
-			Group group = new Group(this, SWT.NONE);
-			group.setText(title);
-			group.setLayout(new GridLayout(1, false));
-			group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-			body = group;
-		}
-
-		Composite textComp = new Composite(body, SWT.NONE);
-		textComp.setLayout(new GridLayout(2, false));
-		textComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
-		Label label = new Label(textComp, SWT.NONE);
-		label.setText(Messages.RemoteDirectoryWidget_1);
-
-		text = new Text(textComp, SWT.BORDER);
-		GridData data = new GridData(SWT.FILL, SWT.FILL, true, false);
-		text.setLayoutData(data);
-		text.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				String path = text.getText();
-				setSavedPath(path);
-				notifyListeners(e);
-			}
-		});
-
-		Composite buttonComp = new Composite(body, SWT.NONE);
-		buttonComp.setLayout(new GridLayout(2, true));
-		GridData buttonCompData = new GridData(SWT.FILL, SWT.FILL, false, false);
-		buttonCompData.horizontalAlignment = SWT.END;
-		buttonComp.setLayoutData(buttonCompData);
-
-		browseButton = new Button(buttonComp, SWT.NONE);
-		browseButton.setText(Messages.RemoteDirectoryWidget_2);
-		GridData browseButtonData = new GridData(SWT.BEGINNING, SWT.FILL, false, false);
-		browseButtonData.widthHint = 110;
-		browseButton.setLayoutData(browseButtonData);
-		browseButton.addSelectionListener(new SelectionAdapter() {
-			@Override
-			public void widgetSelected(SelectionEvent e) {
-				browse();
-			}
-		});
-
-		defaultButton = new Button(buttonComp, SWT.NONE);
-		defaultButton.setText(Messages.RemoteDirectoryWidget_3);
-		GridData defaultButtonData = new GridData(SWT.BEGINNING, SWT.FILL, false, false);
-		defaultButtonData.widthHint = 110;
-		defaultButton.setLayoutData(defaultButtonData);
-		defaultButton.addSelectionListener(new SelectionAdapter() {
-			@Override
-			public void widgetSelected(SelectionEvent e) {
-				restoreDefault(fDefaultPath);
-			}
-		});
-
-		if (defaultPath != null) {
-			text.setText(defaultPath);
-		}
-		updateBrowseButton();
-	}
-
-	/**
-	 * Add a listener that will be notified when the directory path is modified.
-	 * 
-	 * @param listener
-	 *            listener to add
-	 */
-	public void addModifyListener(ModifyListener listener) {
-		modifyListeners.add(listener);
-	}
-
-	/**
-	 * Get the directory location path. This path will be relative to the remote
-	 * machine.
-	 * 
-	 * @return directory location path
-	 */
-	public String getLocationPath() {
-		return text.getText();
-	}
-
-	/**
-	 * Remove a listener that will be notified when the directory path is
-	 * modified.
-	 * 
-	 * @param listener
-	 *            listener to remove
-	 */
-	public void removeModifyListener(ModifyListener listener) {
-		modifyListeners.remove(listener);
-	}
-
-	/**
-	 * Set the message that will be displayed in the remote directory browser
-	 * dialog.
-	 * 
-	 * @param message
-	 *            message to be displayed
-	 */
-	public void setBrowseMessage(String message) {
-		fBrowseMessage = message;
-	}
-
-	/**
-	 * Set the remote connection to use for browsing for the remote directory.
-	 * 
-	 * @param conn
-	 *            remote connection
-	 * @since 4.0
-	 */
-	public void setConnection(IRemoteConnection conn) {
-		if (conn == null) {
-			throw new NullPointerException();
-		}
-
-		if (!conn.equals(fRemoteConnection)) {
-			fRemoteConnection = conn;
-			String path = getSavedPath();
-			restoreDefault(path);
-			updateBrowseButton();
-		}
-	}
-
-	/**
-	 * Set the initial remote location that will be displayed in the widget.
-	 * 
-	 * @param path
-	 */
-	public void setLocationPath(String path) {
-		if (path != null && !path.equals(getLocationPath())) {
-			text.setText(path);
-		}
-	}
-
-	private void browse() {
-		IRemoteUIConnectionManager connMgr = getUIConnectionManager();
-		if (connMgr != null) {
-			connMgr.openConnectionWithProgress(getShell(), null, fRemoteConnection);
-			if (fRemoteConnection.isOpen()) {
-				IRemoteUIFileManager fileMgr = getUIFileManager();
-				if (fileMgr != null) {
-					fileMgr.setConnection(fRemoteConnection);
-					String path = fileMgr.browseDirectory(getShell(), fBrowseMessage, "", 0); //$NON-NLS-1$
-					if (path != null) {
-						setLocationPath(path);
-					}
-				}
-			}
-		}
-	}
-
-	private String getSavedPath() {
-		if (fRemoteConnection != null) {
-			return previousSelections.get(fRemoteConnection.getRemoteServices().getId() + "." + fRemoteConnection.getName()); //$NON-NLS-1$
-		}
-		return null;
-	}
-
-	private IRemoteUIFileManager getUIFileManager() {
-		if (fRemoteConnection != null) {
-			return RemoteUIServices.getRemoteUIServices(fRemoteConnection.getRemoteServices()).getUIFileManager();
-		}
-		return null;
-	}
-
-	private IRemoteUIConnectionManager getUIConnectionManager() {
-		if (fRemoteConnection != null) {
-			return RemoteUIServices.getRemoteUIServices(fRemoteConnection.getRemoteServices()).getUIConnectionManager();
-		}
-		return null;
-	}
-
-	private void notifyListeners(ModifyEvent e) {
-		for (Object listener : modifyListeners.getListeners()) {
-			((ModifyListener) listener).modifyText(e);
-		}
-	}
-
-	private void restoreDefault(String path) {
-		if (path == null && fRemoteConnection != null) {
-			path = fRemoteConnection.getWorkingDirectory().toString();
-		}
-		if (path == null) {
-			path = ""; //$NON-NLS-1$
-		}
-		setLocationPath(path); // modify event listener updates map
-	}
-
-	private void setSavedPath(String path) {
-		if (fRemoteConnection != null) {
-			previousSelections.put(fRemoteConnection.getRemoteServices().getId() + "." + fRemoteConnection.getName(), path); //$NON-NLS-1$
-		}
-	}
-
-	private void updateBrowseButton() {
-		browseButton.setEnabled(getUIFileManager() != null);
-	}
-}
diff --git a/core/org.eclipse.ptp.services.core/pom.xml b/core/org.eclipse.ptp.services.core/pom.xml
index d1bacd0..6a80bb0 100644
--- a/core/org.eclipse.ptp.services.core/pom.xml
+++ b/core/org.eclipse.ptp.services.core/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/core/org.eclipse.ptp.services.ui/plugin.xml b/core/org.eclipse.ptp.services.ui/plugin.xml
index 9c36ca7..926a62d 100644
--- a/core/org.eclipse.ptp.services.ui/plugin.xml
+++ b/core/org.eclipse.ptp.services.ui/plugin.xml
@@ -21,7 +21,7 @@
    <extension
          point="org.eclipse.ui.preferencePages">
       <page
-            category="org.eclipse.ptp.remote.ui.RemoteDevelopmentPreferencePage"
+            category="org.eclipse.remote.ui.RemoteDevelopmentPreferencePage"
             class="org.eclipse.ptp.internal.services.ui.preferences.ServiceConfigurationPreferencePage"
             id="org.eclipse.ptp.services.ui.ServiceConfigurationPreference"
             name="%ServiceConfigurationsPreferencePage.name">
diff --git a/core/org.eclipse.ptp.services.ui/pom.xml b/core/org.eclipse.ptp.services.ui/pom.xml
index b4e313c..5b805ba 100644
--- a/core/org.eclipse.ptp.services.ui/pom.xml
+++ b/core/org.eclipse.ptp.services.ui/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/core/org.eclipse.ptp.ui/.options b/core/org.eclipse.ptp.ui/.options
index e7cec86..05b409b 100644
--- a/core/org.eclipse.ptp.ui/.options
+++ b/core/org.eclipse.ptp.ui/.options
@@ -1,5 +1,4 @@
-org.eclipse.ptp.ui/debug=true
+org.eclipse.ptp.ui/debug=false
 
 # View tracing
-org.eclipse.ptp.ui/views/jobs/tracing=false
-org.eclipse.ptp.ui/views/machines/tracing=false
+org.eclipse.ptp.ui/debug/views/jobs/tracing=false
diff --git a/core/org.eclipse.ptp.ui/META-INF/MANIFEST.MF b/core/org.eclipse.ptp.ui/META-INF/MANIFEST.MF
index 161a484..9ac76da 100644
--- a/core/org.eclipse.ptp.ui/META-INF/MANIFEST.MF
+++ b/core/org.eclipse.ptp.ui/META-INF/MANIFEST.MF
@@ -11,7 +11,8 @@
  org.eclipse.debug.ui,
  org.eclipse.jface.text,
  org.eclipse.ui.forms,
- org.eclipse.ptp.core
+ org.eclipse.ptp.core,
+ org.eclipse.ui.trace
 Bundle-ActivationPolicy: lazy
 Export-Package: 
  org.eclipse.ptp.internal.ui;x-friends:="org.eclipse.ptp.debug.ui",
diff --git a/core/org.eclipse.ptp.ui/plugin.xml b/core/org.eclipse.ptp.ui/plugin.xml
index 302cc47..ad427e4 100644
--- a/core/org.eclipse.ptp.ui/plugin.xml
+++ b/core/org.eclipse.ptp.ui/plugin.xml
@@ -38,5 +38,16 @@
           name="%ParallelViewCategory.name">
     </category>
  </extension>
+ <extension
+       point="org.eclipse.ui.trace.traceComponents">
+    <component
+          id="org.eclipse.ptp.ui.component"
+          label="PTP UI">
+       <bundle
+             consumed="true"
+             name="org.eclipse.ptp.ui">
+       </bundle>
+    </component>
+ </extension>
 
 </plugin>
diff --git a/core/org.eclipse.ptp.ui/pom.xml b/core/org.eclipse.ptp.ui/pom.xml
index aaf4e0d..8712d67 100644
--- a/core/org.eclipse.ptp.ui/pom.xml
+++ b/core/org.eclipse.ptp.ui/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/core/org.eclipse.ptp.ui/src/org/eclipse/ptp/internal/ui/DebugUtil.java b/core/org.eclipse.ptp.ui/src/org/eclipse/ptp/internal/ui/DebugUtil.java
deleted file mode 100644
index 9e74080..0000000
--- a/core/org.eclipse.ptp.ui/src/org/eclipse/ptp/internal/ui/DebugUtil.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.ui;
-
-import org.eclipse.core.runtime.Platform;
-
-public class DebugUtil {
-	private static final String JOBS_VIEW_TRACING_OPTION = "org.eclipse.ptp.ui/views/jobs/tracing"; //$NON-NLS-1$
-	private static final String MACHINES_VIEW_TRACING_OPTION = "org.eclipse.ptp.ui/views/machines/tracing"; //$NON-NLS-1$
-
-	public static boolean JOBS_VIEW_TRACING = false;
-	public static boolean MACHINES_VIEW_TRACING = false; 
-
-	public static void configurePluginDebugOptions() {
-		if (PTPUIPlugin.getDefault().isDebugging()) {
-			String option = Platform.getDebugOption(JOBS_VIEW_TRACING_OPTION);
-			if (option != null) {
-				JOBS_VIEW_TRACING = option.equalsIgnoreCase("true") ; //$NON-NLS-1$
-			}
-			option = Platform.getDebugOption(MACHINES_VIEW_TRACING_OPTION);
-			if (option != null) {
-				MACHINES_VIEW_TRACING = option.equalsIgnoreCase("true") ; //$NON-NLS-1$
-			}
-		}
-	}
-
-}
diff --git a/core/org.eclipse.ptp.ui/src/org/eclipse/ptp/internal/ui/PTPUIDebugOptions.java b/core/org.eclipse.ptp.ui/src/org/eclipse/ptp/internal/ui/PTPUIDebugOptions.java
new file mode 100644
index 0000000..a4a0da4
--- /dev/null
+++ b/core/org.eclipse.ptp.ui/src/org/eclipse/ptp/internal/ui/PTPUIDebugOptions.java
@@ -0,0 +1,106 @@
+/*******************************************************************************

+ * Copyright (c) 2012 Sage Electronic Engineering, LLC. and others.

+ * All rights reserved. This program and the accompanying materials

+ * are made available under the terms of the Eclipse Public License v1.0

+ * which accompanies this distribution, and is available at

+ * http://www.eclipse.org/legal/epl-v10.html

+ *

+ * Contributors:

+ *    Jason Litton (Sage Electronic Engineering, LLC) - initial API and implementation

+ *    Greg Watson (IBM) - adapted for remote core

+ *******************************************************************************/

+

+package org.eclipse.ptp.internal.ui;

+

+import java.util.Hashtable;

+

+import org.eclipse.osgi.service.debug.DebugOptions;

+import org.eclipse.osgi.service.debug.DebugOptionsListener;

+import org.eclipse.osgi.service.debug.DebugTrace;

+import org.eclipse.osgi.util.NLS;

+import org.osgi.framework.BundleContext;

+

+public class PTPUIDebugOptions implements DebugOptionsListener {

+	public static final String DEBUG_JOB_TRACING = "/debug/views/jobs/tracing"; //$NON-NLS-1$

+

+	private static DebugTrace fDebugTrace;

+	private static DebugOptions fDebugOptions;

+	private static PTPUIDebugOptions fUIDebugOptions;

+

+	public static void configure(BundleContext context) {

+		if (fUIDebugOptions == null) {

+			fUIDebugOptions = new PTPUIDebugOptions(context);

+		}

+	}

+

+	private PTPUIDebugOptions(BundleContext context) {

+		Hashtable<String, String> props = new Hashtable<String, String>(2);

+		props.put(DebugOptions.LISTENER_SYMBOLICNAME, PTPUIPlugin.getUniqueIdentifier());

+		context.registerService(DebugOptionsListener.class.getName(), this, props);

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see org.eclipse.osgi.service.debug.DebugOptionsListener#optionsChanged(org.eclipse.osgi.service.debug.DebugOptions)

+	 */

+	@Override

+	public void optionsChanged(DebugOptions options) {

+		fDebugOptions = options;

+		fDebugTrace = options.newDebugTrace(PTPUIPlugin.getUniqueIdentifier());

+	}

+

+	public static boolean isDebugging() {

+		return PTPUIPlugin.getDefault().isDebugging();

+	}

+

+	public static boolean isDebugging(String option) {

+		if (fDebugOptions == null) {

+			return false;

+		}

+		return fDebugOptions.getBooleanOption(PTPUIPlugin.getUniqueIdentifier() + option, false);

+	}

+

+	public static void setDebugging(String option, boolean value) {

+		if (fDebugOptions != null) {

+			if (value) {

+				fDebugOptions.setDebugEnabled(true);

+			}

+			fDebugOptions.setOption(option, Boolean.toString(value));

+		}

+	}

+

+	/**

+	 * Prints the given message to System.out and to the OSGi tracing (if enabled)

+	 * 

+	 * @param message

+	 *            the message or <code>null</code>

+	 */

+	public static void trace(String message) {

+		trace(null, message);

+	}

+

+	/**

+	 * Prints the given message to System.out and to the OSGi tracing (if enabled)

+	 * 

+	 * @param option

+	 *            the option to determine if tracing is displayed

+	 * @param message

+	 *            the message or <code>null</code>

+	 * @param arguments

+	 *            optional arguments for the message or <code>null</code>

+	 */

+	public static void trace(String option, String message, String... arguments) {

+		String traceMsg = message;

+		if (arguments.length > 0) {

+			traceMsg = NLS.bind(message, arguments);

+		}

+		if ((option != null && isDebugging(option)) || isDebugging()) {

+			System.out.println(traceMsg);

+			if (fDebugTrace != null) {

+				fDebugTrace.trace(option, traceMsg, null);

+			}

+		}

+	}

+

+}

diff --git a/core/org.eclipse.ptp.ui/src/org/eclipse/ptp/internal/ui/PTPUIPlugin.java b/core/org.eclipse.ptp.ui/src/org/eclipse/ptp/internal/ui/PTPUIPlugin.java
index da865a2..01da1b7 100644
--- a/core/org.eclipse.ptp.ui/src/org/eclipse/ptp/internal/ui/PTPUIPlugin.java
+++ b/core/org.eclipse.ptp.ui/src/org/eclipse/ptp/internal/ui/PTPUIPlugin.java
@@ -153,7 +153,7 @@
 	@Override
 	public void start(BundleContext context) throws Exception {
 		super.start(context);
-		DebugUtil.configurePluginDebugOptions();
+		PTPUIDebugOptions.configure(context);
 	}
 
 	/*
diff --git a/core/org.eclipse.ptp.ui/src/org/eclipse/ptp/internal/ui/views/ParallelJobsView.java b/core/org.eclipse.ptp.ui/src/org/eclipse/ptp/internal/ui/views/ParallelJobsView.java
index 245a7ac..b9d37fa 100644
--- a/core/org.eclipse.ptp.ui/src/org/eclipse/ptp/internal/ui/views/ParallelJobsView.java
+++ b/core/org.eclipse.ptp.ui/src/org/eclipse/ptp/internal/ui/views/ParallelJobsView.java
@@ -44,10 +44,10 @@
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.jface.viewers.ViewerSorter;
 import org.eclipse.ptp.core.jobs.IJobStatus;
-import org.eclipse.ptp.internal.ui.DebugUtil;
 import org.eclipse.ptp.internal.ui.IElementManager;
 import org.eclipse.ptp.internal.ui.IJobManager;
 import org.eclipse.ptp.internal.ui.IPTPUIConstants;
+import org.eclipse.ptp.internal.ui.PTPUIDebugOptions;
 import org.eclipse.ptp.internal.ui.PTPUIPlugin;
 import org.eclipse.ptp.internal.ui.actions.ParallelAction;
 import org.eclipse.ptp.internal.ui.actions.RemoveAllTerminatedAction;
@@ -94,9 +94,8 @@
 			}
 
 			ISelection selection = getLastJobSelection();
-			if (debug) {
-				System.err.println("============= JobViewUpdateWorkbenchJob refresh: " + selection); //$NON-NLS-1$
-			}
+			PTPUIDebugOptions.trace(PTPUIDebugOptions.DEBUG_JOB_TRACING,
+					"============= JobViewUpdateWorkbenchJob refresh: " + selection); //$NON-NLS-1$
 			if (!jobTableViewer.getTable().isDisposed()) {
 				jobTableViewer.setSelection(selection, true);
 				jobTableViewer.refresh(true);
@@ -145,9 +144,8 @@
 		@Override
 		public boolean shouldSchedule() {
 			int size = size();
-			if (debug) {
-				System.err.println("============= JobViewUpdateWorkbenchJob: " + refreshJobList.size()); //$NON-NLS-1$
-			}
+			PTPUIDebugOptions.trace(PTPUIDebugOptions.DEBUG_JOB_TRACING,
+					"============= JobViewUpdateWorkbenchJob: " + refreshJobList.size()); //$NON-NLS-1$
 			return (size == 1);
 		}
 
@@ -191,11 +189,6 @@
 	}
 
 	/*
-	 * Debug flag
-	 */
-	private final boolean debug = DebugUtil.JOBS_VIEW_TRACING;
-
-	/*
 	 * Element selection
 	 */
 	private ISelection selection = null;
diff --git a/core/org.eclipse.ptp.utils/META-INF/MANIFEST.MF b/core/org.eclipse.ptp.utils/META-INF/MANIFEST.MF
index cebb607..f6ac576 100644
--- a/core/org.eclipse.ptp.utils/META-INF/MANIFEST.MF
+++ b/core/org.eclipse.ptp.utils/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.ptp.utils
-Bundle-Version: 7.0.5.qualifier
+Bundle-Version: 8.0.0.qualifier
 Bundle-Vendor: %pluginProvider
 Bundle-Localization: plugin
diff --git a/core/org.eclipse.ptp.utils/pom.xml b/core/org.eclipse.ptp.utils/pom.xml
index 60f5b9a..1f0913c 100644
--- a/core/org.eclipse.ptp.utils/pom.xml
+++ b/core/org.eclipse.ptp.utils/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.utils</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
     <build>
diff --git a/debug/org.eclipse.ptp.debug.core/.classpath b/debug/org.eclipse.ptp.debug.core/.classpath
index 1347901..867ddff 100644
--- a/debug/org.eclipse.ptp.debug.core/.classpath
+++ b/debug/org.eclipse.ptp.debug.core/.classpath
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="src" path="pdi"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/debug/org.eclipse.ptp.debug.core/.options b/debug/org.eclipse.ptp.debug.core/.options
new file mode 100644
index 0000000..00e4015
--- /dev/null
+++ b/debug/org.eclipse.ptp.debug.core/.options
@@ -0,0 +1,5 @@
+# Trace info for PTP debugger
+org.eclipse.ptp.debug.core/debug=false
+org.eclipse.ptp.debug.core/debug/master=false
+org.eclipse.ptp.debug.core/debug/master/more=false
+org.eclipse.ptp.debug.core/debug/master/output=false
diff --git a/debug/org.eclipse.ptp.debug.core/.settings/org.eclipse.jdt.core.prefs b/debug/org.eclipse.ptp.debug.core/.settings/org.eclipse.jdt.core.prefs
index 416f4fb..8000cd6 100644
--- a/debug/org.eclipse.ptp.debug.core/.settings/org.eclipse.jdt.core.prefs
+++ b/debug/org.eclipse.ptp.debug.core/.settings/org.eclipse.jdt.core.prefs
@@ -1,11 +1,11 @@
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.compliance=1.6
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/debug/org.eclipse.ptp.debug.core/META-INF/MANIFEST.MF b/debug/org.eclipse.ptp.debug.core/META-INF/MANIFEST.MF
index d7bcabf..6293c13 100644
--- a/debug/org.eclipse.ptp.debug.core/META-INF/MANIFEST.MF
+++ b/debug/org.eclipse.ptp.debug.core/META-INF/MANIFEST.MF
@@ -15,7 +15,11 @@
  org.eclipse.ptp.debug.core.pdi.model,
  org.eclipse.ptp.debug.core.pdi.model.aif,
  org.eclipse.ptp.debug.core.pdi.request,
- org.eclipse.ptp.internal.debug.core;x-friends:="org.eclipse.ptp.debug.sdm.core,org.eclipse.ptp.debug.ui,org.eclipse.ptp.launch",
+ org.eclipse.ptp.internal.debug.core;
+  x-friends:="org.eclipse.ptp.debug.sdm.core,
+   org.eclipse.ptp.debug.ui,
+   org.eclipse.ptp.launch,
+   org.eclipse.ptp.debug.sdm.ui",
  org.eclipse.ptp.internal.debug.core.breakpoint;x-internal:=true,
  org.eclipse.ptp.internal.debug.core.event;x-internal:=true,
  org.eclipse.ptp.internal.debug.core.launch;x-friends:="org.eclipse.ptp.launch,org.eclipse.ptp.etfw.parallel",
@@ -35,5 +39,5 @@
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.debug.core,
  org.eclipse.ptp.core
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Import-Package: com.ibm.icu.text
diff --git a/debug/org.eclipse.ptp.debug.core/pdi/org/eclipse/ptp/internal/debug/core/pdi/Session.java b/debug/org.eclipse.ptp.debug.core/pdi/org/eclipse/ptp/internal/debug/core/pdi/Session.java
index 3022282..fc1f4cc 100644
--- a/debug/org.eclipse.ptp.debug.core/pdi/org/eclipse/ptp/internal/debug/core/pdi/Session.java
+++ b/debug/org.eclipse.ptp.debug.core/pdi/org/eclipse/ptp/internal/debug/core/pdi/Session.java
@@ -55,7 +55,7 @@
 import org.eclipse.ptp.debug.core.pdi.model.aif.IAIF;
 import org.eclipse.ptp.debug.core.pdi.request.IPDIRequestFactory;
 import org.eclipse.ptp.debug.core.pdi.request.IPDIStartDebuggerRequest;
-import org.eclipse.ptp.internal.debug.core.PDebugUtils;
+import org.eclipse.ptp.internal.debug.core.PDebugOptions;
 import org.eclipse.ptp.internal.debug.core.PTPDebugCorePlugin;
 import org.eclipse.ptp.internal.debug.core.pdi.messages.Messages;
 
@@ -90,7 +90,7 @@
 			}
 			MultiStatus failed = null;
 			monitor.beginTask(getName(), runnables.length);
-			PDebugUtils.println(Messages.Session_16 + runnables.length);
+			PDebugOptions.trace(Messages.Session_16 + runnables.length);
 			for (Runnable runnable : runnables) {
 				try {
 					runnable.run();
@@ -177,6 +177,7 @@
 	 * .core.runtime.IProgressMonitor, java.lang.String, java.lang.String,
 	 * java.lang.String, java.lang.String[])
 	 */
+	@Override
 	public void connectToDebugger(IProgressMonitor monitor, String app, String path, String dir, String[] args) throws PDIException {
 		SubMonitor progress = SubMonitor.convert(monitor, total_tasks + 10);
 		try {
@@ -204,6 +205,7 @@
 	 * 
 	 * @see org.eclipse.ptp.debug.core.pdi.IPDISession#exit()
 	 */
+	@Override
 	public void exit() throws PDIException {
 		if (status != EXITING && status != EXITED) {
 			setStatus(EXITING);
@@ -233,6 +235,7 @@
 	/**
 	 * @since 4.0
 	 */
+	@Override
 	public IPDITarget findTarget(TaskSet qTasks) throws PDIException {
 		IPDITarget target = targetManager.getTarget(qTasks);
 		if (target == null) {
@@ -246,6 +249,7 @@
 	 * 
 	 * @see org.eclipse.ptp.debug.core.pdi.IPDISession#getBreakpointManager()
 	 */
+	@Override
 	public IPDIBreakpointManager getBreakpointManager() {
 		return breakpointManager;
 	}
@@ -265,6 +269,7 @@
 	 * 
 	 * @see org.eclipse.ptp.debug.core.pdi.IPDISession#getDebugger()
 	 */
+	@Override
 	public IPDIDebugger getDebugger() {
 		return debugger;
 	}
@@ -274,6 +279,7 @@
 	 * 
 	 * @see org.eclipse.ptp.debug.core.pdi.IPDISession#getEventFactory()
 	 */
+	@Override
 	public IPDIEventFactory getEventFactory() {
 		return eventFactory;
 	}
@@ -283,6 +289,7 @@
 	 * 
 	 * @see org.eclipse.ptp.debug.core.pdi.IPDISession#getEventManager()
 	 */
+	@Override
 	public IPDIEventManager getEventManager() {
 		return eventManager;
 	}
@@ -292,6 +299,7 @@
 	 * 
 	 * @see org.eclipse.ptp.debug.core.pdi.IPDISession#getEventRequestManager()
 	 */
+	@Override
 	public IPDIEventRequestManager getEventRequestManager() {
 		return eventRequestManager;
 	}
@@ -301,6 +309,7 @@
 	 * 
 	 * @see org.eclipse.ptp.debug.core.pdi.IPDISession#getExpressionManager()
 	 */
+	@Override
 	public IPDIExpressionManager getExpressionManager() {
 		return expressionManager;
 	}
@@ -310,6 +319,7 @@
 	 * 
 	 * @see org.eclipse.ptp.debug.core.pdi.IPDISession#getJobID()
 	 */
+	@Override
 	public String getJobID() {
 		return job_id;
 	}
@@ -319,6 +329,7 @@
 	 * 
 	 * @see org.eclipse.ptp.debug.core.pdi.IPDISession#getMemoryManager()
 	 */
+	@Override
 	public IPDIMemoryManager getMemoryManager() {
 		return memoryManager;
 	}
@@ -328,6 +339,7 @@
 	 * 
 	 * @see org.eclipse.ptp.debug.core.pdi.IPDISession#getModelFactory()
 	 */
+	@Override
 	public IPDIModelFactory getModelFactory() {
 		return modelFactory;
 	}
@@ -337,6 +349,7 @@
 	 * 
 	 * @see org.eclipse.ptp.debug.core.pdi.IPDISession#getRegisterManager()
 	 */
+	@Override
 	public IPDIRegisterManager getRegisterManager() {
 		return registerManager;
 	}
@@ -346,6 +359,7 @@
 	 * 
 	 * @see org.eclipse.ptp.debug.core.pdi.IPDISession#getRequestFactory()
 	 */
+	@Override
 	public IPDIRequestFactory getRequestFactory() {
 		return requestFactory;
 	}
@@ -355,6 +369,7 @@
 	 * 
 	 * @see org.eclipse.ptp.debug.core.pdi.IPDISessionObject#getSession()
 	 */
+	@Override
 	public IPDISession getSession() {
 		return this;
 	}
@@ -364,6 +379,7 @@
 	 * 
 	 * @see org.eclipse.ptp.debug.core.pdi.IPDISession#getSignalManager()
 	 */
+	@Override
 	public IPDISignalManager getSignalManager() {
 		return signalManager;
 	}
@@ -376,6 +392,7 @@
 	/**
 	 * @return
 	 */
+	@Override
 	public IPDISourceManager getSourceManager() {
 		return sourceManager;
 	}
@@ -385,6 +402,7 @@
 	 * 
 	 * @see org.eclipse.ptp.debug.core.pdi.IPDISession#getStatus()
 	 */
+	@Override
 	public int getStatus() {
 		return status;
 	}
@@ -394,6 +412,7 @@
 	 * 
 	 * @see org.eclipse.ptp.debug.core.pdi.IPDISession#getTargetManager()
 	 */
+	@Override
 	public IPDITargetManager getTargetManager() {
 		return targetManager;
 	}
@@ -403,6 +422,7 @@
 	 * 
 	 * @see org.eclipse.ptp.debug.core.pdi.IPDISession#getTaskManager()
 	 */
+	@Override
 	public IPDITaskManager getTaskManager() {
 		return taskManager;
 	}
@@ -415,6 +435,7 @@
 	/**
 	 * @since 4.0
 	 */
+	@Override
 	public TaskSet getTasks() {
 		TaskSet tasks = new TaskSet(total_tasks);
 		tasks.set(0, total_tasks);
@@ -426,6 +447,7 @@
 	 * 
 	 * @see org.eclipse.ptp.debug.core.pdi.IPDISession#getThreadManager()
 	 */
+	@Override
 	public IPDIThreadManager getThreadManager() {
 		return threadManager;
 	}
@@ -435,6 +457,7 @@
 	 * 
 	 * @see org.eclipse.ptp.debug.core.pdi.IPDISession#getTimeout()
 	 */
+	@Override
 	public long getTimeout() {
 		return timeout;
 	}
@@ -444,6 +467,7 @@
 	 * 
 	 * @see org.eclipse.ptp.debug.core.pdi.IPDISession#getTotalTasks()
 	 */
+	@Override
 	public int getTotalTasks() {
 		return total_tasks;
 	}
@@ -453,6 +477,7 @@
 	 * 
 	 * @see org.eclipse.ptp.debug.core.pdi.IPDISession#getVariableManager()
 	 */
+	@Override
 	public IPDIVariableManager getVariableManager() {
 		return variableManager;
 	}
@@ -467,6 +492,7 @@
 	/**
 	 * @since 4.0
 	 */
+	@Override
 	public boolean isSuspended(TaskSet tasks) {
 		return taskManager.isAllSuspended(tasks);
 	}
@@ -481,6 +507,7 @@
 	/**
 	 * @since 4.0
 	 */
+	@Override
 	public boolean isTerminated(TaskSet tasks) {
 		return taskManager.isAllTerminated(tasks);
 	}
@@ -498,11 +525,13 @@
 	/**
 	 * @since 4.0
 	 */
+	@Override
 	public synchronized void processRunningEvent(TaskSet tasks) {
 		IPDITarget[] targets = targetManager.getTargets();
 		for (final IPDITarget target : targets) {
 			if (target.getTasks().intersects(tasks)) {
 				Runnable runnable = new Runnable() {
+					@Override
 					public void run() {
 						target.setSupended(false);
 					}
@@ -522,11 +551,13 @@
 	/**
 	 * @since 4.0
 	 */
+	@Override
 	public synchronized void processSupsendedEvent(TaskSet tasks, final int thread_id, final String[] vars) {
 		IPDITarget[] targets = targetManager.getTargets();
 		for (final IPDITarget target : targets) {
 			if (target.getTasks().intersects(tasks)) {
 				Runnable runnable = new Runnable() {
+					@Override
 					public void run() {
 						target.setSupended(true);
 						target.updateState(thread_id);
@@ -583,6 +614,7 @@
 	 * org.eclipse.ptp.debug.core.pdi.IPDISession#queueRunnable(java.lang.Runnable
 	 * )
 	 */
+	@Override
 	public void queueRunnable(Runnable runnable) {
 		notifyJob.addRunnable(runnable);
 	}
@@ -597,6 +629,7 @@
 	/**
 	 * @since 4.0
 	 */
+	@Override
 	public void restart(TaskSet tasks) throws PDIException {
 		checkStatus();
 		throw new PDIException(tasks, Messages.Session_2);
@@ -612,6 +645,7 @@
 	/**
 	 * @since 4.0
 	 */
+	@Override
 	public void resume(TaskSet tasks, boolean passSignal) throws PDIException {
 		checkStatus();
 		if (passSignal) {
@@ -634,6 +668,7 @@
 	/**
 	 * @since 4.0
 	 */
+	@Override
 	public void resume(TaskSet tasks, IPDILocation location) throws PDIException {
 		checkStatus();
 		taskManager.getSuspendedTasks(tasks);
@@ -653,6 +688,7 @@
 	/**
 	 * @since 4.0
 	 */
+	@Override
 	public void resume(TaskSet tasks, IPDISignal signal) throws PDIException {
 		checkStatus();
 		taskManager.getSuspendedTasks(tasks);
@@ -667,6 +703,7 @@
 	 * 
 	 * @see org.eclipse.ptp.debug.core.pdi.IPDISession#setRequestTimeout(long)
 	 */
+	@Override
 	public void setRequestTimeout(long timeout) {
 		this.timeout = timeout;
 	}
@@ -676,6 +713,7 @@
 	 * 
 	 * @see org.eclipse.ptp.debug.core.pdi.IPDISession#setStatus(int)
 	 */
+	@Override
 	public void setStatus(int status) {
 		waitLock.lock();
 		try {
@@ -690,6 +728,7 @@
 	 * 
 	 * @see org.eclipse.ptp.debug.core.pdi.IPDISession#shutdown(boolean)
 	 */
+	@Override
 	public void shutdown(boolean force) {
 		try {
 			if (!force) {
@@ -727,6 +766,7 @@
 	/**
 	 * @since 4.0
 	 */
+	@Override
 	public void start(TaskSet tasks) throws PDIException {
 		checkStatus();
 		eventRequestManager.addEventRequest(getRequestFactory().getResumeRequest(tasks, false));
@@ -742,6 +782,7 @@
 	/**
 	 * @since 4.0
 	 */
+	@Override
 	public void stepInto(TaskSet tasks, int count) throws PDIException {
 		checkStatus();
 		taskManager.getSuspendedTasks(tasks);
@@ -761,6 +802,7 @@
 	/**
 	 * @since 4.0
 	 */
+	@Override
 	public void stepIntoInstruction(TaskSet tasks, int count) throws PDIException {
 		checkStatus();
 		taskManager.getSuspendedTasks(tasks);
@@ -780,6 +822,7 @@
 	/**
 	 * @since 4.0
 	 */
+	@Override
 	public void stepOver(TaskSet tasks, int count) throws PDIException {
 		checkStatus();
 		taskManager.getSuspendedTasks(tasks);
@@ -799,6 +842,7 @@
 	/**
 	 * @since 4.0
 	 */
+	@Override
 	public void stepOverInstruction(TaskSet tasks, int count) throws PDIException {
 		checkStatus();
 		taskManager.getSuspendedTasks(tasks);
@@ -818,6 +862,7 @@
 	/**
 	 * @since 4.0
 	 */
+	@Override
 	public void stepReturn(TaskSet tasks, IAIF aif) throws PDIException {
 		checkStatus();
 		taskManager.getSuspendedTasks(tasks);
@@ -837,6 +882,7 @@
 	/**
 	 * @since 4.0
 	 */
+	@Override
 	public void stepReturn(TaskSet tasks, int count) throws PDIException {
 		checkStatus();
 		taskManager.getCanStepReturnTasks(tasks);
@@ -856,6 +902,7 @@
 	/**
 	 * @since 4.0
 	 */
+	@Override
 	public void stepUntil(TaskSet tasks, IPDILocation location) throws PDIException {
 		checkStatus();
 		taskManager.getSuspendedTasks(tasks);
@@ -875,6 +922,7 @@
 	/**
 	 * @since 4.0
 	 */
+	@Override
 	public void suspend(TaskSet tasks) throws PDIException {
 		checkStatus();
 		taskManager.getRunningTasks(tasks);
@@ -894,6 +942,7 @@
 	/**
 	 * @since 4.0
 	 */
+	@Override
 	public void terminate(TaskSet tasks) throws PDIException {
 		checkStatus();
 		taskManager.getNonTerminatedTasks(tasks);
@@ -920,6 +969,7 @@
 	/**
 	 * @since 4.0
 	 */
+	@Override
 	public void validateStepReturn(TaskSet tasks) throws PDIException {
 		/*
 		 * taskManager.getUnregisteredTasks(tasks); if (!tasks.isEmpty()) {
diff --git a/debug/org.eclipse.ptp.debug.core/pdi/org/eclipse/ptp/internal/debug/core/pdi/manager/AbstractEventManager.java b/debug/org.eclipse.ptp.debug.core/pdi/org/eclipse/ptp/internal/debug/core/pdi/manager/AbstractEventManager.java
index 6a0d07d..405c78f 100644
--- a/debug/org.eclipse.ptp.debug.core/pdi/org/eclipse/ptp/internal/debug/core/pdi/manager/AbstractEventManager.java
+++ b/debug/org.eclipse.ptp.debug.core/pdi/org/eclipse/ptp/internal/debug/core/pdi/manager/AbstractEventManager.java
@@ -36,7 +36,7 @@
 import org.eclipse.ptp.debug.core.pdi.request.IPDIEventRequest;
 import org.eclipse.ptp.debug.core.pdi.request.IPDIEventRequestListener;
 import org.eclipse.ptp.debug.core.pdi.request.IPDIStopDebuggerRequest;
-import org.eclipse.ptp.internal.debug.core.PDebugUtils;
+import org.eclipse.ptp.internal.debug.core.PDebugOptions;
 import org.eclipse.ptp.internal.debug.core.pdi.messages.Messages;
 
 public abstract class AbstractEventManager extends AbstractPDIManager implements IPDIEventManager {
@@ -68,7 +68,7 @@
 			eventTimer.schedule(new TimerTask() {
 				@Override
 				public void run() {
-					PDebugUtils.println(Messages.AbstractEventManager_0 + request);
+					PDebugOptions.trace(Messages.AbstractEventManager_0 + request);
 					request.error(Messages.AbstractEventManager_1);
 					notifyEventRequest(request);
 				}
@@ -93,6 +93,7 @@
 	 * org.eclipse.ptp.debug.core.pdi.manager.IPDIEventManager#addEventListener
 	 * (org.eclipse.ptp.debug.core.pdi.event.IPDIEventListener)
 	 */
+	@Override
 	public void addEventListener(IPDIEventListener listener) {
 		listenerList.add(listener);
 	}
@@ -104,6 +105,7 @@
 	 * org.eclipse.ptp.debug.core.pdi.manager.IPDIEventManager#fireEvent(org
 	 * .eclipse.ptp.debug.core.pdi.event.IPDIEvent)
 	 */
+	@Override
 	public void fireEvent(IPDIEvent event) {
 		fireEvents(new IPDIEvent[] { event });
 	}
@@ -115,10 +117,12 @@
 	 * org.eclipse.ptp.debug.core.pdi.manager.IPDIEventManager#fireEvents(org
 	 * .eclipse.ptp.debug.core.pdi.event.IPDIEvent[])
 	 */
+	@Override
 	public void fireEvents(final IPDIEvent[] events) {
 		if (events.length > 0) {
 			for (final Object listener : listenerList.getListeners()) {
 				Runnable runnable = new Runnable() {
+					@Override
 					public void run() {
 						((IPDIEventListener) listener).handleDebugEvents(events);
 					}
@@ -144,6 +148,7 @@
 	 * org.eclipse.ptp.debug.core.pdi.manager.IPDIEventManager#notifyEventRequest
 	 * (org.eclipse.ptp.debug.core.pdi.request.IPDIEventRequest)
 	 */
+	@Override
 	public void notifyEventRequest(IPDIEventRequest request) {
 		synchronized (requestList) {
 			if (!(request instanceof IPDIStopDebuggerRequest)) {
@@ -152,7 +157,7 @@
 				}
 			}
 			notifyEventRequestListeners(request);
-			PDebugUtils.println(Messages.AbstractEventManager_2 + request);
+			PDebugOptions.trace(Messages.AbstractEventManager_2 + request);
 			switch (request.getStatus()) {
 			// case IPDIEventRequest.DONE:
 			// case IPDIEventRequest.RUNNING:
@@ -193,6 +198,7 @@
 	 * org.eclipse.ptp.debug.core.pdi.manager.IPDIEventManager#registerEventRequest
 	 * (org.eclipse.ptp.debug.core.pdi.request.IPDIEventRequest)
 	 */
+	@Override
 	public void registerEventRequest(IPDIEventRequest request) {
 		synchronized (requestList) {
 			if (request instanceof IPDIStopDebuggerRequest) {
@@ -201,7 +207,7 @@
 				session.setStatus(IPDISession.EXITED);
 				return;
 			} else {
-				PDebugUtils.println(Messages.AbstractEventManager_8 + request);
+				PDebugOptions.trace(Messages.AbstractEventManager_8 + request);
 				requestList.add(new EventRequestScheduledTask(request));
 			}
 		}
@@ -213,6 +219,7 @@
 	 * @see org.eclipse.ptp.debug.core.pdi.manager.IPDIEventManager#
 	 * removeAllRegisteredEventRequests()
 	 */
+	@Override
 	public void removeAllRegisteredEventRequests() {
 		synchronized (requestList) {
 			Iterator<EventRequestScheduledTask> iter = requestList.iterator();
@@ -234,6 +241,7 @@
 	 * org.eclipse.ptp.debug.core.pdi.manager.IPDIEventManager#removeEventListener
 	 * (org.eclipse.ptp.debug.core.pdi.event.IPDIEventListener)
 	 */
+	@Override
 	public void removeEventListener(IPDIEventListener listener) {
 		listenerList.remove(listener);
 	}
@@ -268,6 +276,7 @@
 	/**
 	 * @return
 	 */
+	@Override
 	public IPDIEventRequest getCurrentRequest() {
 		synchronized (requestList) {
 			if (!requestList.isEmpty()) {
diff --git a/debug/org.eclipse.ptp.debug.core/pdi/org/eclipse/ptp/internal/debug/core/pdi/manager/EventRequestManager.java b/debug/org.eclipse.ptp.debug.core/pdi/org/eclipse/ptp/internal/debug/core/pdi/manager/EventRequestManager.java
index 7d95a80..ca515dd 100644
--- a/debug/org.eclipse.ptp.debug.core/pdi/org/eclipse/ptp/internal/debug/core/pdi/manager/EventRequestManager.java
+++ b/debug/org.eclipse.ptp.debug.core/pdi/org/eclipse/ptp/internal/debug/core/pdi/manager/EventRequestManager.java
@@ -34,7 +34,7 @@
 import org.eclipse.ptp.debug.core.pdi.request.IPDIEventRequest;
 import org.eclipse.ptp.debug.core.pdi.request.IPDIEventRequestListener;
 import org.eclipse.ptp.debug.core.pdi.request.IPDIStopDebuggerRequest;
-import org.eclipse.ptp.internal.debug.core.PDebugUtils;
+import org.eclipse.ptp.internal.debug.core.PDebugOptions;
 import org.eclipse.ptp.internal.debug.core.PTPDebugCorePlugin;
 import org.eclipse.ptp.internal.debug.core.pdi.messages.Messages;
 
@@ -62,7 +62,7 @@
 					throw new PDIException(request.getTasks(), NLS.bind(Messages.EventRequestManager_1, request.getName()));
 				}
 
-				PDebugUtils.println(NLS.bind(Messages.EventRequestManager_2, request));
+				PDebugOptions.trace(NLS.bind(Messages.EventRequestManager_2, request));
 				fRequests.add(request);
 			}
 			schedule();
@@ -168,10 +168,12 @@
 		@Override
 		public IStatus run(IProgressMonitor monitor) {
 			SafeRunner.run(new ISafeRunnable() {
+				@Override
 				public void handleException(Throwable exception) {
 					PTPDebugCorePlugin.log(exception);
 				}
 
+				@Override
 				public void run() throws Exception {
 					IPDIEventRequest request = null;
 					synchronized (fRequests) {
@@ -209,6 +211,7 @@
 	 * @see org.eclipse.ptp.debug.core.pdi.request.IPDIEventRequestManager#
 	 * addEventRequest(org.eclipse.ptp.debug.core.pdi.request.IPDIEventRequest)
 	 */
+	@Override
 	public void addEventRequest(IPDIEventRequest request) throws PDIException {
 		if (!(request instanceof IPDIStopDebuggerRequest)) {
 			if (request.getTasks().isEmpty()) {
@@ -231,6 +234,7 @@
 	 * org.eclipse.ptp.debug.core.pdi.request.IPDIEventRequestManager#canExecute
 	 * (org.eclipse.ptp.debug.core.pdi.request.IPDIEventRequest)
 	 */
+	@Override
 	public boolean canExecute(IPDIEventRequest request) {
 		return true;
 	}
@@ -241,6 +245,7 @@
 	 * @see org.eclipse.ptp.debug.core.pdi.request.IPDIEventRequestManager#
 	 * deleteAllEventRequests()
 	 */
+	@Override
 	public void deleteAllEventRequests() throws PDIException {
 		dispatchJob.removeEventRequests();
 	}
@@ -252,6 +257,7 @@
 	 * deleteEventRequest
 	 * (org.eclipse.ptp.debug.core.pdi.request.IPDIEventRequest)
 	 */
+	@Override
 	public void deleteEventRequest(IPDIEventRequest request) throws PDIException {
 		dispatchJob.removeEventRequest(request);
 	}
@@ -263,6 +269,7 @@
 	 * org.eclipse.ptp.debug.core.pdi.request.IPDIEventRequestManager#execute
 	 * (org.eclipse.ptp.debug.core.pdi.request.IPDIEventRequest)
 	 */
+	@Override
 	public void execute(IPDIEventRequest request) {
 		if (request != null) {
 			session.getEventManager().registerEventRequest(request);
@@ -279,6 +286,7 @@
 	 * @see org.eclipse.ptp.debug.core.pdi.request.IPDIEventRequestManager#
 	 * flushEventRequests()
 	 */
+	@Override
 	public void flushEventRequests() {
 		session.getEventManager().removeAllRegisteredEventRequests();
 		dispatchJob.flushEventRequests();
@@ -291,6 +299,7 @@
 	 * org.eclipse.ptp.debug.core.pdi.request.IPDIEventRequestManager#getRequests
 	 * ()
 	 */
+	@Override
 	public IPDIEventRequest[] getRequests() {
 		return dispatchJob.getEventRequests();
 	}
@@ -311,6 +320,7 @@
 	 * 
 	 * @see java.util.Observer#update(java.util.Observable, java.lang.Object)
 	 */
+	@Override
 	public void handleEventRequestChanged(IPDIEventRequest event) {
 		dispatchJob.removeCurrentEventRequest();
 	}
diff --git a/debug/org.eclipse.ptp.debug.core/pdi/org/eclipse/ptp/internal/debug/core/pdi/model/aif/AIFFactory.java b/debug/org.eclipse.ptp.debug.core/pdi/org/eclipse/ptp/internal/debug/core/pdi/model/aif/AIFFactory.java
index 16f2ed7..24544e7 100644
--- a/debug/org.eclipse.ptp.debug.core/pdi/org/eclipse/ptp/internal/debug/core/pdi/model/aif/AIFFactory.java
+++ b/debug/org.eclipse.ptp.debug.core/pdi/org/eclipse/ptp/internal/debug/core/pdi/model/aif/AIFFactory.java
@@ -41,7 +41,7 @@
 import org.eclipse.ptp.debug.core.pdi.model.aif.IAIFTypeVoid;
 import org.eclipse.ptp.debug.core.pdi.model.aif.IAIFValue;
 import org.eclipse.ptp.debug.core.pdi.model.aif.IValueParent;
-import org.eclipse.ptp.internal.debug.core.PDebugUtils;
+import org.eclipse.ptp.internal.debug.core.PDebugOptions;
 import org.eclipse.ptp.internal.debug.core.pdi.aif.AIF;
 import org.eclipse.ptp.internal.debug.core.pdi.aif.AIFType;
 import org.eclipse.ptp.internal.debug.core.pdi.aif.AIFTypeAddress;
@@ -430,7 +430,7 @@
 		String debugStr = ""; //$NON-NLS-1$
 
 		if (fmt == null || fmt.length() == 0) {
-			PDebugUtils.println(Messages.AIFFactory_0 + fmt);
+			PDebugOptions.trace(Messages.AIFFactory_0 + fmt);
 			fLastType = UNKNOWNTYPE;
 			return fmt;
 		}
@@ -508,13 +508,13 @@
 			type = new AIFTypeNamed();
 			break;
 		default:
-			PDebugUtils.println(Messages.AIFFactory_20 + fmt);
+			PDebugOptions.trace(Messages.AIFFactory_20 + fmt);
 			fLastType = new AIFTypeIncomplete();
 			return ""; //$NON-NLS-1$
 		}
 
 		fmt = type.parse(fmt);
-		PDebugUtils.println(debugStr + type.toString());
+		PDebugOptions.trace(debugStr + type.toString());
 		fLastType = type;
 		return fmt;
 
diff --git a/debug/org.eclipse.ptp.debug.core/pom.xml b/debug/org.eclipse.ptp.debug.core/pom.xml
index dfdaca8..1bc1cce 100644
--- a/debug/org.eclipse.ptp.debug.core/pom.xml
+++ b/debug/org.eclipse.ptp.debug.core/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/debug/org.eclipse.ptp.debug.core/src/org/eclipse/ptp/internal/debug/core/PDebugOptions.java b/debug/org.eclipse.ptp.debug.core/src/org/eclipse/ptp/internal/debug/core/PDebugOptions.java
new file mode 100644
index 0000000..91854fa
--- /dev/null
+++ b/debug/org.eclipse.ptp.debug.core/src/org/eclipse/ptp/internal/debug/core/PDebugOptions.java
@@ -0,0 +1,112 @@
+/*******************************************************************************

+ * Copyright (c) 2012 Sage Electronic Engineering, LLC. and others.

+ * All rights reserved. This program and the accompanying materials

+ * are made available under the terms of the Eclipse Public License v1.0

+ * which accompanies this distribution, and is available at

+ * http://www.eclipse.org/legal/epl-v10.html

+ *

+ * Contributors:

+ *    Jason Litton (Sage Electronic Engineering, LLC) - initial API and implementation

+ *    Greg Watson (IBM) - adapted for remote core

+ *******************************************************************************/

+

+package org.eclipse.ptp.internal.debug.core;

+

+import java.util.Hashtable;

+

+import org.eclipse.osgi.service.debug.DebugOptions;

+import org.eclipse.osgi.service.debug.DebugOptionsListener;

+import org.eclipse.osgi.service.debug.DebugTrace;

+import org.eclipse.osgi.util.NLS;

+import org.osgi.framework.BundleContext;

+

+public class PDebugOptions implements DebugOptionsListener {

+

+	public static final String DEBUG_MASTER = "/debug/master"; //$NON-NLS-1$

+	public static final String DEBUG_MASTER_MORE = "/debug/master/more"; //$NON-NLS-1$

+	public static final String DEBUG_MASTER_OUTPUT = "/debug/master/output"; //$NON-NLS-1$

+

+	private static DebugTrace fDebugTrace;

+	private static DebugOptions fDebugOptions;

+	private static PDebugOptions fPDebugOptions;

+

+	public static void configure(BundleContext context) {

+		if (fPDebugOptions == null) {

+			fPDebugOptions = new PDebugOptions(context);

+		}

+	}

+

+	/**

+	 * Constructor

+	 */

+	private PDebugOptions(BundleContext context) {

+		Hashtable<String, String> props = new Hashtable<String, String>(2);

+		props.put(DebugOptions.LISTENER_SYMBOLICNAME, PTPDebugCorePlugin.getUniqueIdentifier());

+		context.registerService(DebugOptionsListener.class.getName(), this, props);

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see org.eclipse.osgi.service.debug.DebugOptionsListener#optionsChanged(org.eclipse.osgi.service.debug.DebugOptions)

+	 */

+	@Override

+	public void optionsChanged(DebugOptions options) {

+		fDebugOptions = options;

+		fDebugTrace = options.newDebugTrace(PTPDebugCorePlugin.getUniqueIdentifier());

+	}

+

+	public static boolean isDebugging() {

+		return PTPDebugCorePlugin.getDefault().isDebugging();

+	}

+

+	public static boolean isDebugging(String option) {

+		if (fDebugOptions == null) {

+			return false;

+		}

+		return fDebugOptions.getBooleanOption(PTPDebugCorePlugin.getUniqueIdentifier() + option, false);

+	}

+

+	public static void setDebugging(String option, boolean value) {

+		if (fDebugOptions != null) {

+			if (value) {

+				fDebugOptions.setDebugEnabled(true);

+			}

+			fDebugOptions.setOption(option, Boolean.toString(value));

+		}

+	}

+

+	/**

+	 * Prints the given message to System.out and to the OSGi tracing (if enabled)

+	 * 

+	 * @param message

+	 *            the message or <code>null</code>

+	 */

+	public static void trace(String message) {

+		trace(null, message);

+	}

+

+	/**

+	 * Prints the given message to System.out and to the OSGi tracing (if enabled)

+	 * 

+	 * @param option

+	 *            the option to determine if tracing is displayed

+	 * @param message

+	 *            the message or <code>null</code>

+	 * @param arguments

+	 *            optional arguments for the message or <code>null</code>

+	 */

+	public static void trace(String option, String message, String... arguments) {

+		String traceMsg = message;

+		if (arguments.length > 0) {

+			traceMsg = NLS.bind(message, arguments);

+		}

+		if ((option != null && isDebugging(option)) || isDebugging()) {

+			System.out.println(traceMsg);

+			if (fDebugTrace != null) {

+				fDebugTrace.trace(option, traceMsg, null);

+			}

+		}

+	}

+

+}

diff --git a/debug/org.eclipse.ptp.debug.core/src/org/eclipse/ptp/internal/debug/core/PDebugUtils.java b/debug/org.eclipse.ptp.debug.core/src/org/eclipse/ptp/internal/debug/core/PDebugUtils.java
index 42bac32..379bc17 100644
--- a/debug/org.eclipse.ptp.debug.core/src/org/eclipse/ptp/internal/debug/core/PDebugUtils.java
+++ b/debug/org.eclipse.ptp.debug.core/src/org/eclipse/ptp/internal/debug/core/PDebugUtils.java
@@ -45,12 +45,6 @@
  * 
  */
 public class PDebugUtils {
-	public static final boolean DEBUG = true;
-
-	public static void println(String msg) {
-		System.err.println(msg);
-	}
-
 	public static boolean question(IStatus status, Object source) {
 		Boolean result = Boolean.FALSE;
 		IStatusHandler handler = DebugPlugin.getDefault().getStatusHandler(status);
@@ -97,10 +91,12 @@
 	}
 
 	public static char charFromByte(byte value) {
-		if (value >= 0x0 && value <= 0x9)
+		if (value >= 0x0 && value <= 0x9) {
 			return (char) (value + '0');
-		if (value >= 0xa && value <= 0xf)
+		}
+		if (value >= 0xa && value <= 0xf) {
 			return (char) (value - 0xa + 'a');
+		}
 		return '0';
 	}
 
@@ -126,38 +122,44 @@
 	}
 
 	public static byte toByte(char[] bytes, boolean le) {
-		if (bytes.length != 2)
+		if (bytes.length != 2) {
 			return 0;
+		}
 		return (byte) Long.parseLong(bytesToString(bytes, le, true), 16);
 	}
 
 	public static short toUnsignedByte(char[] bytes, boolean le) {
-		if (bytes.length != 2)
+		if (bytes.length != 2) {
 			return 0;
+		}
 		return (short) Long.parseLong(bytesToString(bytes, le, false), 16);
 	}
 
 	public static short toShort(char[] bytes, boolean le) {
-		if (bytes.length != 4)
+		if (bytes.length != 4) {
 			return 0;
+		}
 		return (short) Long.parseLong(bytesToString(bytes, le, true), 16);
 	}
 
 	public static int toUnsignedShort(char[] bytes, boolean le) {
-		if (bytes.length != 4)
+		if (bytes.length != 4) {
 			return 0;
+		}
 		return (int) Long.parseLong(bytesToString(bytes, le, false), 16);
 	}
 
 	public static int toInt(char[] bytes, boolean le) {
-		if (bytes.length != 8)
+		if (bytes.length != 8) {
 			return 0;
+		}
 		return (int) Long.parseLong(bytesToString(bytes, le, true), 16);
 	}
 
 	public static long toUnsignedInt(char[] bytes, boolean le) {
-		if (bytes.length != 8)
+		if (bytes.length != 8) {
 			return 0;
+		}
 		return Long.parseLong(bytesToString(bytes, le, false), 16);
 	}
 
@@ -226,9 +228,10 @@
 			List<IProject> projects = PDebugUtils.getReferencedProjects(project);
 			Iterator<IProject> it = projects.iterator();
 			while (it.hasNext()) {
-				IProject prj = (IProject) it.next();
-				if (prj.exists() && (prj.equals(project)))
+				IProject prj = it.next();
+				if (prj.exists() && (prj.equals(project))) {
 					return true;
+				}
 			}
 		}
 		return false;
@@ -255,8 +258,9 @@
 	}
 
 	public static int getAddressSize() {
-		if (Platform.getOSArch().endsWith("64")) //$NON-NLS-1$
+		if (Platform.getOSArch().endsWith("64")) {
 			return 8;
+		}
 		return 4;
 	}
 }
diff --git a/debug/org.eclipse.ptp.debug.core/src/org/eclipse/ptp/internal/debug/core/PTPDebugCorePlugin.java b/debug/org.eclipse.ptp.debug.core/src/org/eclipse/ptp/internal/debug/core/PTPDebugCorePlugin.java
index 81b6563..0034c1b 100644
--- a/debug/org.eclipse.ptp.debug.core/src/org/eclipse/ptp/internal/debug/core/PTPDebugCorePlugin.java
+++ b/debug/org.eclipse.ptp.debug.core/src/org/eclipse/ptp/internal/debug/core/PTPDebugCorePlugin.java
@@ -100,8 +100,8 @@
 			try {
 				setDispatching(true);
 				Object[] listeners = getEventListeners();
-				for (int i = 0; i < listeners.length; i++) {
-					fListener = (IPDebugEventListener) listeners[i];
+				for (Object listener : listeners) {
+					fListener = (IPDebugEventListener) listener;
 					SafeRunner.run(this);
 				}
 
@@ -112,10 +112,12 @@
 			fListener = null;
 		}
 
+		@Override
 		public void handleException(Throwable exception) {
 			log(new Status(IStatus.ERROR, getUniqueIdentifier(), INTERNAL_ERROR, Messages.PTPDebugCorePlugin_0, exception));
 		}
 
+		@Override
 		public void run() throws Exception {
 			fListener.handleDebugEvent(fEvent);
 		}
@@ -227,8 +229,9 @@
 	 * @param event
 	 */
 	public void fireDebugEvent(IPDebugEvent event) {
-		if (isShuttingDown() || event == null || fEventListeners.isEmpty())
+		if (isShuttingDown() || event == null || fEventListeners.isEmpty()) {
 			return;
+		}
 		synchronized (fEventQueue) {
 			fEventQueue.add(event);
 		}
@@ -327,17 +330,22 @@
 	@Override
 	public void start(BundleContext context) throws Exception {
 		super.start(context);
+		PDebugOptions.configure(context);
 		ResourcesPlugin.getWorkspace().addSaveParticipant(getUniqueIdentifier(), new ISaveParticipant() {
+			@Override
 			public void saving(ISaveContext saveContext) throws CoreException {
 				Preferences.savePreferences(getUniqueIdentifier());
 			}
 
+			@Override
 			public void rollback(ISaveContext saveContext) {
 			}
 
+			@Override
 			public void prepareToSave(ISaveContext saveContext) throws CoreException {
 			}
 
+			@Override
 			public void doneSaving(ISaveContext saveContext) {
 			}
 		});
@@ -371,8 +379,9 @@
 	 * 
 	 */
 	private void disposeCommonSourceLookupDirector() {
-		if (fCommonSourceLookupDirector != null)
+		if (fCommonSourceLookupDirector != null) {
 			fCommonSourceLookupDirector.dispose();
+		}
 	}
 
 	private void disposeDebugConfigurations() {
@@ -418,8 +427,7 @@
 		if (extensionPoint != null) {
 			IConfigurationElement[] infos = extensionPoint.getConfigurationElements();
 			fDebugConfigurations = new HashMap<String, PDebugConfiguration>(infos.length);
-			for (int i = 0; i < infos.length; i++) {
-				IConfigurationElement configurationElement = infos[i];
+			for (IConfigurationElement configurationElement : infos) {
 				PDebugConfiguration configType = new PDebugConfiguration(configurationElement);
 				fDebugConfigurations.put(configType.getID(), configType);
 			}
diff --git a/debug/org.eclipse.ptp.debug.sdm.core/.options b/debug/org.eclipse.ptp.debug.sdm.core/.options
deleted file mode 100644
index 4214750..0000000
--- a/debug/org.eclipse.ptp.debug.sdm.core/.options
+++ /dev/null
@@ -1,5 +0,0 @@
-# Trace job that executes SDM master
-org.eclipse.ptp.debug.sdm.core/debug=true
-org.eclipse.ptp.debug.sdm.core/debug/SDMmaster=true
-org.eclipse.ptp.debug.sdm.core/debug/SDMmaster/more=true
-org.eclipse.ptp.debug.sdm.core/debug/SDMmaster/output=true
diff --git a/debug/org.eclipse.ptp.debug.sdm.core/META-INF/MANIFEST.MF b/debug/org.eclipse.ptp.debug.sdm.core/META-INF/MANIFEST.MF
index 85866f9..d0d420c 100644
--- a/debug/org.eclipse.ptp.debug.sdm.core/META-INF/MANIFEST.MF
+++ b/debug/org.eclipse.ptp.debug.sdm.core/META-INF/MANIFEST.MF
@@ -32,8 +32,7 @@
  org.eclipse.ptp.internal.debug.sdm.core.proxy;x-friends:="org.eclipse.ptp.debug.sdm.ui";
   uses:="org.eclipse.ptp.core.util,
    org.eclipse.core.runtime,
-   org.eclipse.ptp.proxy.debug.client",
- org.eclipse.ptp.internal.debug.sdm.core.utils;x-friends:="org.eclipse.ptp.debug.sdm.ui"
+   org.eclipse.ptp.proxy.debug.client"
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.debug.core,
  org.eclipse.core.filesystem,
@@ -41,7 +40,7 @@
  org.eclipse.ptp.core,
  org.eclipse.ptp.debug.core,
  org.eclipse.ptp.launch,
- org.eclipse.ptp.remote.core
+ org.eclipse.remote.core
 Bundle-ActivationPolicy: lazy
 Bundle-Vendor: %pluginProvider
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/debug/org.eclipse.ptp.debug.sdm.core/pom.xml b/debug/org.eclipse.ptp.debug.sdm.core/pom.xml
index 0c108ef..454e563 100644
--- a/debug/org.eclipse.ptp.debug.sdm.core/pom.xml
+++ b/debug/org.eclipse.ptp.debug.sdm.core/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/SDMDebugCorePlugin.java b/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/SDMDebugCorePlugin.java
index 9af72d6..a3901ef 100644
--- a/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/SDMDebugCorePlugin.java
+++ b/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/SDMDebugCorePlugin.java
@@ -27,7 +27,6 @@
 import org.eclipse.core.runtime.IExtensionPoint;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Plugin;
-import org.eclipse.ptp.internal.debug.sdm.core.utils.DebugUtil;
 import org.osgi.framework.BundleContext;
 
 /**
@@ -143,7 +142,6 @@
 	@Override
 	public void start(BundleContext context) throws Exception {
 		super.start(context);
-		DebugUtil.configurePluginDebugOptions();
 	}
 
 	/**
diff --git a/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/SDMDebugger.java b/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/SDMDebugger.java
index 52be388..f1fdf7a 100644
--- a/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/SDMDebugger.java
+++ b/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/SDMDebugger.java
@@ -56,12 +56,11 @@
 import org.eclipse.ptp.internal.debug.core.pdi.Session;
 import org.eclipse.ptp.internal.debug.sdm.core.messages.Messages;
 import org.eclipse.ptp.internal.debug.sdm.core.pdi.PDIDebugger;
-import org.eclipse.ptp.internal.debug.sdm.core.utils.DebugUtil;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.RemoteServices;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
 import org.osgi.framework.Bundle;
 
 /**
@@ -143,7 +142,7 @@
 							if (osName != null && osArch != null) {
 								Bundle bundle = Platform.getBundle(BUNDLE_PREFIX + osName);
 								if (bundle != null) {
-									IRemoteFileManager fileManager = remoteServices.getFileManager(remoteConnection);
+									IRemoteFileManager fileManager = remoteConnection.getFileManager();
 									if (fileManager != null) {
 										/*
 										 * Create the .eclipssettings directory if it doesn't exist on the remote machine. The mkdir
@@ -194,7 +193,7 @@
 											if (!destInfo.getAttribute(EFS.ATTRIBUTE_EXECUTABLE)) {
 												destInfo.setAttribute(EFS.ATTRIBUTE_EXECUTABLE, true);
 												/*
-												 * Make sure sdm is writeable to world
+												 * Make sure sdm is not writeable to world
 												 */
 												destInfo.setAttribute(EFS.ATTRIBUTE_OTHER_WRITE, false);
 												destPath.putInfo(destInfo, EFS.SET_ATTRIBUTES, progress.newChild(10));
@@ -269,18 +268,6 @@
 	 */
 	public synchronized void initialize(ILaunchConfiguration configuration, IProgressMonitor monitor) throws CoreException {
 		SubMonitor progress = SubMonitor.convert(monitor, 30);
-		if (Preferences.getBoolean(SDMDebugCorePlugin.getUniqueIdentifier(), SDMPreferenceConstants.SDM_DEBUG_CLIENT_ENABLED)) {
-			int level = Preferences.getInt(SDMDebugCorePlugin.getUniqueIdentifier(), SDMPreferenceConstants.SDM_DEBUG_CLIENT_LEVEL);
-			if ((level & SDMPreferenceConstants.DEBUG_CLIENT_TRACING) == SDMPreferenceConstants.DEBUG_CLIENT_TRACING) {
-				DebugUtil.SDM_MASTER_TRACING = true;
-			}
-			if ((level & SDMPreferenceConstants.DEBUG_CLIENT_TRACING_MORE) == SDMPreferenceConstants.DEBUG_CLIENT_TRACING_MORE) {
-				DebugUtil.SDM_MASTER_TRACING_MORE = true;
-			}
-			if ((level & SDMPreferenceConstants.DEBUG_CLIENT_OUTPUT) == SDMPreferenceConstants.DEBUG_CLIENT_OUTPUT) {
-				DebugUtil.SDM_MASTER_OUTPUT_TRACING = true;
-			}
-		}
 
 		ILaunchConfigurationWorkingCopy workingCopy = configuration.getWorkingCopy();
 
@@ -370,7 +357,7 @@
 		if (conn == null) {
 			throw new CoreException(new Status(IStatus.ERROR, SDMDebugCorePlugin.PLUGIN_ID, Messages.SDMDebugger_2));
 		}
-		IRemoteFileManager fileManager = conn.getRemoteServices().getFileManager(conn);
+		IRemoteFileManager fileManager = conn.getFileManager();
 		if (fileManager == null) {
 			throw new CoreException(new Status(IStatus.ERROR, SDMDebugCorePlugin.PLUGIN_ID, Messages.SDMDebugger_3));
 		}
diff --git a/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/SDMEventManager.java b/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/SDMEventManager.java
index 4407b83..4d5e75f 100644
--- a/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/SDMEventManager.java
+++ b/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/SDMEventManager.java
@@ -43,6 +43,7 @@
 import org.eclipse.ptp.debug.core.pdi.request.IPDIStepOverRequest;
 import org.eclipse.ptp.debug.core.pdi.request.IPDIStepRequest;
 import org.eclipse.ptp.debug.core.pdi.request.IPDITerminateRequest;
+import org.eclipse.ptp.internal.debug.core.PDebugOptions;
 import org.eclipse.ptp.internal.debug.core.pdi.manager.AbstractEventManager;
 import org.eclipse.ptp.internal.debug.sdm.core.messages.Messages;
 import org.eclipse.ptp.internal.debug.sdm.core.proxy.ProxyDebugClient;
@@ -255,17 +256,17 @@
 				eventList.add(session.getEventFactory().newResumedEvent(session, eTasks, IPDIResumedEvent.CONTINUE));
 			} else if (request instanceof IPDIStepRequest) {
 				int details;
-				if (request instanceof IPDIStepIntoRequest)
+				if (request instanceof IPDIStepIntoRequest) {
 					details = IPDIResumedEvent.STEP_INTO;
-				else if (request instanceof IPDIStepOverRequest)
+				} else if (request instanceof IPDIStepOverRequest) {
 					details = IPDIResumedEvent.STEP_OVER;
-				else if (request instanceof IPDIStepFinishRequest)
+				} else if (request instanceof IPDIStepFinishRequest) {
 					details = IPDIResumedEvent.STEP_RETURN;
-				else if (request instanceof IPDIStepIntoInstructionRequest)
+				} else if (request instanceof IPDIStepIntoInstructionRequest) {
 					details = IPDIResumedEvent.STEP_INTO_INSTRUCTION;
-				else if (request instanceof IPDIStepOverInstructionRequest)
+				} else if (request instanceof IPDIStepOverInstructionRequest) {
 					details = IPDIResumedEvent.STEP_OVER_INSTRUCTION;
-				else {
+				} else {
 					details = IPDIResumedEvent.CONTINUE;
 				}
 				session.getTaskManager().setSuspendTasks(false, eTasks);
@@ -355,6 +356,8 @@
 		ProxyDebugLocator loc = e.getFrame().getLocator();
 		IPDILocator locator = PDILocationFactory
 				.newLocator(loc.getFile(), loc.getFunction(), loc.getLineNumber(), loc.getAddress());
+		PDebugOptions.trace("Signal Event:" + eTasks.toString() + " sig:" + e.getSignalName() + " file:" + loc.getFile() + " func:" //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+				+ loc.getFunction() + " line:" + loc.getLineNumber() + " addr:" + loc.getAddress()); //$NON-NLS-1$ //$NON-NLS-2$
 		fireEvent(createSuspendedEvent(
 				session.getEventFactory().newSignalInfo(session, eTasks, e.getSignalName(), e.getSignalMeaning(), null, locator),
 				e.getThreadId(), e.getFrame().getLevel(), e.getDepth(), e.getChangedVars()));
diff --git a/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/SDMPreferenceConstants.java b/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/SDMPreferenceConstants.java
index 7ed7740..ffaa6cc 100644
--- a/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/SDMPreferenceConstants.java
+++ b/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/SDMPreferenceConstants.java
@@ -56,32 +56,6 @@
 	public static final int DEBUG_LEVEL_PROTOCOL = 0x40;
 
 	/**
-	 * @since 4.0
-	 */
-	public static final String SDM_DEBUG_CLIENT_ENABLED = PLUGIN_ID + ".debug_client_enabled"; //$NON-NLS-1$
-	/**
-	 * @since 4.0
-	 */
-	public static final String SDM_DEBUG_CLIENT_LEVEL = PLUGIN_ID + ".debug_client_level"; //$NON-NLS-1$
-
-	/**
-	 * @since 4.0
-	 */
-	public static final int DEBUG_CLIENT_NONE = 0x00;
-	/**
-	 * @since 4.0
-	 */
-	public static final int DEBUG_CLIENT_TRACING = 0x01;
-	/**
-	 * @since 4.0
-	 */
-	public static final int DEBUG_CLIENT_TRACING_MORE = 0x02;
-	/**
-	 * @since 4.0
-	 */
-	public static final int DEBUG_CLIENT_OUTPUT = 0x04;
-
-	/**
 	 * Default SDM backend
 	 * 
 	 * @since 6.0
diff --git a/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/SDMRunner.java b/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/SDMRunner.java
index 0f6270c..1d64412 100644
--- a/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/SDMRunner.java
+++ b/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/SDMRunner.java
@@ -13,13 +13,13 @@
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.ptp.core.jobs.IJobControl;
 import org.eclipse.ptp.debug.core.launch.IPLaunch;
+import org.eclipse.ptp.internal.debug.core.PDebugOptions;
 import org.eclipse.ptp.internal.debug.core.PTPDebugCorePlugin;
 import org.eclipse.ptp.internal.debug.sdm.core.messages.Messages;
-import org.eclipse.ptp.internal.debug.sdm.core.utils.DebugUtil;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.core.IRemoteProcess;
-import org.eclipse.ptp.remote.core.IRemoteProcessBuilder;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteProcess;
+import org.eclipse.remote.core.IRemoteProcessBuilder;
 
 public class SDMRunner extends Job {
 	public enum SDMMasterState {
@@ -42,16 +42,16 @@
 		this.setPriority(Job.LONG);
 		this.setSystem(true);
 		this.connection = conn;
-		DebugUtil.trace(DebugUtil.SDM_MASTER_TRACING_MORE, Messages.SDMRunner_4);
+		PDebugOptions.trace(PDebugOptions.DEBUG_MASTER_MORE, Messages.SDMRunner_4);
 	}
 
 	public void setCommand(List<String> command) {
-		DebugUtil.trace(DebugUtil.SDM_MASTER_TRACING_MORE, Messages.SDMRunner_5, command.toString());
+		PDebugOptions.trace(PDebugOptions.DEBUG_MASTER_MORE, Messages.SDMRunner_5, command.toString());
 		this.command = command;
 	}
 
 	public void setWorkDir(String workDir) {
-		DebugUtil.trace(DebugUtil.SDM_MASTER_TRACING_MORE, Messages.SDMRunner_6, workDir);
+		PDebugOptions.trace(PDebugOptions.DEBUG_MASTER_MORE, Messages.SDMRunner_6, workDir);
 		this.workDir = workDir;
 	}
 
@@ -60,7 +60,7 @@
 	}
 
 	protected synchronized void setSdmState(SDMMasterState sdmState) {
-		DebugUtil.trace(DebugUtil.SDM_MASTER_TRACING_MORE, Messages.SDMRunner_7, sdmState.toString());
+		PDebugOptions.trace(PDebugOptions.DEBUG_MASTER_MORE, Messages.SDMRunner_7, sdmState.toString());
 		this.sdmState = sdmState;
 		this.notifyAll();
 	}
@@ -69,7 +69,7 @@
 	 * @since 6.0
 	 */
 	public void setLaunch(IPLaunch launch) {
-		DebugUtil.trace(DebugUtil.SDM_MASTER_TRACING_MORE, Messages.SDMRunner_8, launch.getJobId());
+		PDebugOptions.trace(PDebugOptions.DEBUG_MASTER_MORE, Messages.SDMRunner_8, launch.getJobId());
 		this.launch = launch;
 	}
 
@@ -78,7 +78,7 @@
 		assert command != null;
 		assert sdmProcess == null;
 
-		DebugUtil.trace(DebugUtil.SDM_MASTER_TRACING, Messages.SDMRunner_9);
+		PDebugOptions.trace(PDebugOptions.DEBUG_MASTER, Messages.SDMRunner_9);
 		/*
 		 * Catch all try...catch
 		 */
@@ -89,9 +89,9 @@
 			/*
 			 * Prepare remote connection.
 			 */
-			IRemoteFileManager fileManager = connection.getRemoteServices().getFileManager(connection);
+			IRemoteFileManager fileManager = connection.getFileManager();
 
-			IRemoteProcessBuilder sdmProcessBuilder = connection.getRemoteServices().getProcessBuilder(connection, command);
+			IRemoteProcessBuilder sdmProcessBuilder = connection.getProcessBuilder(command);
 			if (workDir != null) {
 				sdmProcessBuilder.directory(fileManager.getResource(workDir));
 			}
@@ -99,7 +99,7 @@
 			/*
 			 * Wait some time to assure that SDM servers and front end have started.
 			 */
-			DebugUtil.trace(DebugUtil.SDM_MASTER_TRACING, Messages.SDMRunner_10);
+			PDebugOptions.trace(PDebugOptions.DEBUG_MASTER, Messages.SDMRunner_10);
 			if (monitor.isCanceled()) {
 				throw new InterruptedException();
 			}
@@ -110,7 +110,7 @@
 			/*
 			 * Create process.
 			 */
-			DebugUtil.trace(DebugUtil.SDM_MASTER_TRACING, Messages.SDMRunner_11);
+			PDebugOptions.trace(PDebugOptions.DEBUG_MASTER, Messages.SDMRunner_11);
 			if (monitor.isCanceled()) {
 				throw new InterruptedException();
 			}
@@ -120,7 +120,7 @@
 			final BufferedReader err_reader = new BufferedReader(new InputStreamReader(sdmProcess.getErrorStream()));
 			final BufferedReader out_reader = new BufferedReader(new InputStreamReader(sdmProcess.getInputStream()));
 
-			if (DebugUtil.SDM_MASTER_OUTPUT_TRACING) {
+			if (PDebugOptions.isDebugging(PDebugOptions.DEBUG_MASTER_OUTPUT)) {
 				new Thread(new Runnable() {
 					public void run() {
 						try {
@@ -140,7 +140,7 @@
 				}, Messages.SDMRunner_13).start();
 			}
 
-			if (DebugUtil.SDM_MASTER_OUTPUT_TRACING) {
+			if (PDebugOptions.isDebugging(PDebugOptions.DEBUG_MASTER_OUTPUT)) {
 				new Thread(new Runnable() {
 					public void run() {
 						try {
@@ -164,7 +164,7 @@
 			 * Wait while running but not canceled.
 			 */
 			setSdmState(SDMMasterState.RUNNING);
-			DebugUtil.trace(DebugUtil.SDM_MASTER_TRACING_MORE, Messages.SDMRunner_16);
+			PDebugOptions.trace(PDebugOptions.DEBUG_MASTER_MORE, Messages.SDMRunner_16);
 			while (!sdmProcess.isCompleted()) {
 				synchronized (this) {
 					wait(500);
@@ -179,13 +179,13 @@
 			/*
 			 * Check if process terminated successfully (if not canceled).
 			 */
-			DebugUtil.trace(DebugUtil.SDM_MASTER_TRACING, Messages.SDMRunner_17, sdmProcess.exitValue());
+			PDebugOptions.trace(PDebugOptions.DEBUG_MASTER, Messages.SDMRunner_17, Integer.toString(sdmProcess.exitValue()));
 			if (sdmProcess.exitValue() != 0) {
 				if (!monitor.isCanceled()) {
 					throw new CoreException(new Status(IStatus.ERROR, SDMDebugCorePlugin.getUniqueIdentifier(), NLS.bind(
 							Messages.SDMRunner_2, sdmProcess.exitValue())));
 				} else {
-					DebugUtil.trace(DebugUtil.SDM_MASTER_TRACING, Messages.SDMRunner_18);
+					PDebugOptions.trace(PDebugOptions.DEBUG_MASTER, Messages.SDMRunner_18);
 				}
 			}
 			setSdmState(SDMMasterState.FINISHED);
@@ -194,14 +194,14 @@
 			/*
 			 * Terminate the job, handling the error.
 			 */
-			DebugUtil.error(DebugUtil.SDM_MASTER_TRACING, Messages.SDMRunner_19, e);
+			PDebugOptions.trace(PDebugOptions.DEBUG_MASTER, Messages.SDMRunner_19, e.toString());
 			synchronized (this) {
-				DebugUtil.error(DebugUtil.SDM_MASTER_TRACING, Messages.SDMRunner_20, e);
+				PDebugOptions.trace(PDebugOptions.DEBUG_MASTER, Messages.SDMRunner_20, e.toString());
 				sdmProcess.destroy();
 			}
 			try {
 				if (launch != null) {
-					DebugUtil.trace(DebugUtil.SDM_MASTER_TRACING, Messages.SDMRunner_21, launch.getJobId());
+					PDebugOptions.trace(PDebugOptions.DEBUG_MASTER, Messages.SDMRunner_21, launch.getJobId());
 					launch.getJobControl().control(launch.getJobId(), IJobControl.TERMINATE_OPERATION, null);
 				}
 			} catch (CoreException e1) {
@@ -218,7 +218,7 @@
 				return new Status(IStatus.ERROR, SDMDebugCorePlugin.getUniqueIdentifier(), Messages.SDMRunner_3, e);
 			}
 		} finally {
-			DebugUtil.trace(DebugUtil.SDM_MASTER_TRACING, Messages.SDMRunner_22);
+			PDebugOptions.trace(PDebugOptions.DEBUG_MASTER, Messages.SDMRunner_22);
 			synchronized (this) {
 				sdmProcess = null;
 			}
diff --git a/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/pdi/PDIDebugger.java b/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/pdi/PDIDebugger.java
index 708c8a8..b7cc7af 100644
--- a/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/pdi/PDIDebugger.java
+++ b/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/pdi/PDIDebugger.java
@@ -51,10 +51,10 @@
 import org.eclipse.ptp.internal.debug.sdm.core.messages.Messages;
 import org.eclipse.ptp.internal.debug.sdm.core.proxy.ProxyDebugClient;
 import org.eclipse.ptp.proxy.debug.event.IProxyDebugEventListener;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.RemoteServices;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
 
 /**
  * @author clement
diff --git a/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/proxy/ProxyDebugClient.java b/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/proxy/ProxyDebugClient.java
index 43a9072..043feb6 100644
--- a/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/proxy/ProxyDebugClient.java
+++ b/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/proxy/ProxyDebugClient.java
@@ -24,8 +24,8 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.ptp.debug.core.TaskSet;
+import org.eclipse.ptp.internal.debug.core.PDebugOptions;
 import org.eclipse.ptp.internal.debug.sdm.core.messages.Messages;
-import org.eclipse.ptp.internal.debug.sdm.core.utils.DebugUtil;
 import org.eclipse.ptp.proxy.debug.client.AbstractProxyDebugClient;
 import org.eclipse.ptp.proxy.debug.command.IProxyDebugCommand;
 import org.eclipse.ptp.proxy.debug.command.ProxyDebugBreakpointAfterCommand;
@@ -370,7 +370,7 @@
 	 * @throws IOException
 	 */
 	public boolean waitConnect(IProgressMonitor monitor) throws IOException {
-		DebugUtil.trace(DebugUtil.SDM_MASTER_TRACING, Messages.ProxyDebugClient_0);
+		PDebugOptions.trace(PDebugOptions.DEBUG_MASTER, Messages.ProxyDebugClient_0);
 		if (monitor == null) {
 			monitor = new NullProgressMonitor();
 		}
diff --git a/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/utils/DebugUtil.java b/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/utils/DebugUtil.java
deleted file mode 100644
index 202dd75..0000000
--- a/debug/org.eclipse.ptp.debug.sdm.core/src/org/eclipse/ptp/internal/debug/sdm/core/utils/DebugUtil.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.eclipse.ptp.internal.debug.sdm.core.utils;
-
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ptp.internal.debug.sdm.core.SDMDebugCorePlugin;
-
-public class DebugUtil {
-	private static final String SDM_MASTER_TRACING_OPTION = "org.eclipse.ptp.internal.debug.sdm.core/debug/SDMmaster"; //$NON-NLS-1$
-	private static final String SDM_MASTER_TRACING_OPTION_MORE = "org.eclipse.ptp.internal.debug.sdm.core/debug/SDMmaster/more"; //$NON-NLS-1$
-	private static final String SDM_MASTER_OUTPUT_TRACING_OPTION = "org.eclipse.ptp.internal.debug.sdm.core/debug/SDMmaster/output"; //$NON-NLS-1$
-
-	public static boolean SDM_MASTER_TRACING = false;
-	public static boolean SDM_MASTER_TRACING_MORE = false;
-	public static boolean SDM_MASTER_OUTPUT_TRACING = false;
-
-	public static void configurePluginDebugOptions() {
-		if (SDMDebugCorePlugin.getDefault().isDebugging()) {
-			String option = Platform.getDebugOption(SDM_MASTER_TRACING_OPTION);
-			if (option != null) {
-				SDM_MASTER_TRACING = option.equalsIgnoreCase("true") ; //$NON-NLS-1$
-			}
-			option = Platform.getDebugOption(SDM_MASTER_TRACING_OPTION_MORE);
-			if (option != null) {
-				SDM_MASTER_TRACING_MORE = option.equalsIgnoreCase("true") ; //$NON-NLS-1$
-			}
-			option = Platform.getDebugOption(SDM_MASTER_OUTPUT_TRACING_OPTION);
-			if (option != null) {
-				SDM_MASTER_OUTPUT_TRACING = option.equalsIgnoreCase("true") ; //$NON-NLS-1$
-			}
-		}
-	}
-
-	public static void trace(boolean option, String pattern, Object ... arguments) {
-		trace(option, NLS.bind(pattern, arguments));
-	}
-
-	public static void trace(boolean option, String message) {
-		if (option) {
-			System.out.println(message);
-			System.out.flush();
-		}
-	}
-
-	public static void error(boolean option, String pattern, Object ... arguments) {
-		error(option, NLS.bind(pattern, arguments));
-	}
-
-	public static void error(boolean option, String message) {
-		if (option) {
-			System.err.println(message);
-		}
-	}
-}
diff --git a/debug/org.eclipse.ptp.debug.sdm.ui/META-INF/MANIFEST.MF b/debug/org.eclipse.ptp.debug.sdm.ui/META-INF/MANIFEST.MF
index b9cc873..0d3516f 100644
--- a/debug/org.eclipse.ptp.debug.sdm.ui/META-INF/MANIFEST.MF
+++ b/debug/org.eclipse.ptp.debug.sdm.ui/META-INF/MANIFEST.MF
@@ -14,9 +14,10 @@
  org.eclipse.ptp.debug.ui,
  org.eclipse.ptp.ui,
  org.eclipse.ptp.core,
- org.eclipse.ptp.remote.core,
- org.eclipse.ptp.remote.ui,
- org.eclipse.ptp.debug.sdm.core
+ org.eclipse.remote.core,
+ org.eclipse.remote.ui,
+ org.eclipse.ptp.debug.sdm.core,
+ org.eclipse.ptp.debug.core
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Export-Package: org.eclipse.ptp.internal.debug.sdm.ui;x-internal:=true,
diff --git a/debug/org.eclipse.ptp.debug.sdm.ui/pom.xml b/debug/org.eclipse.ptp.debug.sdm.ui/pom.xml
index 8257131..4b40be8 100644
--- a/debug/org.eclipse.ptp.debug.sdm.ui/pom.xml
+++ b/debug/org.eclipse.ptp.debug.sdm.ui/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/debug/org.eclipse.ptp.debug.sdm.ui/src/org/eclipse/ptp/internal/debug/sdm/ui/SDMPage.java b/debug/org.eclipse.ptp.debug.sdm.ui/src/org/eclipse/ptp/internal/debug/sdm/ui/SDMPage.java
index 514e7ac..2a7178c 100644
--- a/debug/org.eclipse.ptp.debug.sdm.ui/src/org/eclipse/ptp/internal/debug/sdm/ui/SDMPage.java
+++ b/debug/org.eclipse.ptp.debug.sdm.ui/src/org/eclipse/ptp/internal/debug/sdm/ui/SDMPage.java
@@ -25,12 +25,12 @@
 import org.eclipse.ptp.internal.debug.sdm.core.SDMPreferenceConstants;
 import org.eclipse.ptp.internal.debug.sdm.ui.messages.Messages;
 import org.eclipse.ptp.internal.ui.preferences.ScrolledPageContent;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
-import org.eclipse.ptp.remote.ui.IRemoteUIFileManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIServices;
-import org.eclipse.ptp.remote.ui.RemoteUIServices;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.RemoteServices;
+import org.eclipse.remote.ui.IRemoteUIFileManager;
+import org.eclipse.remote.ui.IRemoteUIServices;
+import org.eclipse.remote.ui.RemoteUIServices;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
diff --git a/debug/org.eclipse.ptp.debug.sdm.ui/src/org/eclipse/ptp/internal/debug/sdm/ui/messages/Messages.java b/debug/org.eclipse.ptp.debug.sdm.ui/src/org/eclipse/ptp/internal/debug/sdm/ui/messages/Messages.java
index 168c143..7597588 100644
--- a/debug/org.eclipse.ptp.debug.sdm.ui/src/org/eclipse/ptp/internal/debug/sdm/ui/messages/Messages.java
+++ b/debug/org.eclipse.ptp.debug.sdm.ui/src/org/eclipse/ptp/internal/debug/sdm/ui/messages/Messages.java
@@ -22,10 +22,6 @@
 	public static String SDMPreferencePage_10;
 	public static String SDMPreferencePage_11;
 	public static String SDMPreferencePage_12;
-	public static String SDMPreferencePage_13;
-	public static String SDMPreferencePage_14;
-	public static String SDMPreferencePage_15;
-	public static String SDMPreferencePage_16;
 	public static String SDMPreferencePage_17;
 	public static String SDMPreferencePage_18;
 	public static String SDMPreferencePage_2;
diff --git a/debug/org.eclipse.ptp.debug.sdm.ui/src/org/eclipse/ptp/internal/debug/sdm/ui/messages/messages.properties b/debug/org.eclipse.ptp.debug.sdm.ui/src/org/eclipse/ptp/internal/debug/sdm/ui/messages/messages.properties
index 1d25663..3be72f6 100644
--- a/debug/org.eclipse.ptp.debug.sdm.ui/src/org/eclipse/ptp/internal/debug/sdm/ui/messages/messages.properties
+++ b/debug/org.eclipse.ptp.debug.sdm.ui/src/org/eclipse/ptp/internal/debug/sdm/ui/messages/messages.properties
@@ -14,17 +14,13 @@
 SDMPreferencePage_1=Debugger launch preferences
 SDMPreferencePage_2=Backend debugger
 SDMPreferencePage_3=Path to gdb executable
-SDMPreferencePage_5=SDM debugging options
-SDMPreferencePage_6=Enable SDM debugging
+SDMPreferencePage_5=SDM tracing options
+SDMPreferencePage_6=Enable SDM tracing
 SDMPreferencePage_7=Startup sequence
 SDMPreferencePage_8=Message layer
 SDMPreferencePage_9=Routing layer
 SDMPreferencePage_10=Backend servers
 SDMPreferencePage_11=Debug engine
 SDMPreferencePage_12=Communication protocol
-SDMPreferencePage_13=Enable SDM client debugging
-SDMPreferencePage_14=Tracing
-SDMPreferencePage_15=More tracing
-SDMPreferencePage_16=Backend output
 SDMPreferencePage_17=Backend master
 SDMPreferencePage_18=Path to SDM executable
diff --git a/debug/org.eclipse.ptp.debug.sdm.ui/src/org/eclipse/ptp/internal/debug/sdm/ui/preferences/SDMPreferencePage.java b/debug/org.eclipse.ptp.debug.sdm.ui/src/org/eclipse/ptp/internal/debug/sdm/ui/preferences/SDMPreferencePage.java
index 972a61a..2013cc4 100644
--- a/debug/org.eclipse.ptp.debug.sdm.ui/src/org/eclipse/ptp/internal/debug/sdm/ui/preferences/SDMPreferencePage.java
+++ b/debug/org.eclipse.ptp.debug.sdm.ui/src/org/eclipse/ptp/internal/debug/sdm/ui/preferences/SDMPreferencePage.java
@@ -22,6 +22,7 @@
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.ptp.core.Preferences;
+import org.eclipse.ptp.internal.debug.core.PDebugOptions;
 import org.eclipse.ptp.internal.debug.sdm.core.SDMDebugCorePlugin;
 import org.eclipse.ptp.internal.debug.sdm.core.SDMPreferenceConstants;
 import org.eclipse.ptp.internal.debug.sdm.ui.messages.Messages;
@@ -72,15 +73,9 @@
 	private Button debugServerButton;
 	private Button debugBackendButton;
 	private Button debugProtocolButton;
-	private Button debugClientEnabledButton;
-	private Button debugClientTraceButton;
-	private Button debugClientTraceMoreButton;
-	private Button debugClientOutputButton;
 
 	private boolean debugEnabled = false;
 	private int debugLevel = SDMPreferenceConstants.DEBUG_LEVEL_NONE;
-	private boolean debugClientEnabled = false;
-	private int debugClientLevel = SDMPreferenceConstants.DEBUG_CLIENT_NONE;
 
 	protected WidgetListener listener = new WidgetListener();
 
@@ -112,8 +107,6 @@
 		initializeValues();
 		debugEnabled = false;
 		debugLevel = SDMPreferenceConstants.DEBUG_LEVEL_NONE;
-		debugClientEnabled = false;
-		debugClientLevel = SDMPreferenceConstants.DEBUG_CLIENT_NONE;
 		updateDebugButtons();
 		super.performDefaults();
 	}
@@ -143,6 +136,7 @@
 	 * Handle combo selection
 	 */
 	private void handleSDMComboSelected() {
+		// Do nothing
 	}
 
 	private void initializeValues() {
@@ -178,18 +172,6 @@
 				.setSelection((debugLevel & SDMPreferenceConstants.DEBUG_LEVEL_BACKEND) == SDMPreferenceConstants.DEBUG_LEVEL_BACKEND);
 		debugProtocolButton
 				.setSelection((debugLevel & SDMPreferenceConstants.DEBUG_LEVEL_PROTOCOL) == SDMPreferenceConstants.DEBUG_LEVEL_PROTOCOL);
-
-		debugClientEnabledButton.setSelection(debugClientEnabled);
-		debugClientTraceButton.setEnabled(debugClientEnabled);
-		debugClientTraceMoreButton.setEnabled(debugClientEnabled);
-		debugClientOutputButton.setEnabled(debugClientEnabled);
-
-		debugClientTraceButton
-				.setSelection((debugClientLevel & SDMPreferenceConstants.DEBUG_CLIENT_TRACING) == SDMPreferenceConstants.DEBUG_CLIENT_TRACING);
-		debugClientTraceMoreButton
-				.setSelection((debugClientLevel & SDMPreferenceConstants.DEBUG_CLIENT_TRACING_MORE) == SDMPreferenceConstants.DEBUG_CLIENT_TRACING_MORE);
-		debugClientOutputButton
-				.setSelection((debugClientLevel & SDMPreferenceConstants.DEBUG_CLIENT_OUTPUT) == SDMPreferenceConstants.DEBUG_CLIENT_OUTPUT);
 	}
 
 	private void updateValues() {
@@ -279,10 +261,7 @@
 
 			public void widgetSelected(SelectionEvent e) {
 				debugEnabled = debugEnabledButton.getSelection();
-				if (debugEnabled) {
-					debugClientEnabled = true;
-					debugClientLevel |= SDMPreferenceConstants.DEBUG_CLIENT_OUTPUT;
-				}
+				PDebugOptions.setDebugging(PDebugOptions.DEBUG_MASTER_OUTPUT, true);
 				updateDebugButtons();
 			}
 		});
@@ -420,82 +399,6 @@
 			}
 		});
 
-		Composite masterDebugComp = createComposite(debugGroup, 1);
-		gd = new GridData();
-		gd.verticalAlignment = SWT.TOP;
-		masterDebugComp.setLayoutData(gd);
-
-		debugClientEnabledButton = new Button(masterDebugComp, SWT.CHECK);
-		debugClientEnabledButton.setText(Messages.SDMPreferencePage_13);
-		debugClientEnabledButton.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				widgetSelected(e);
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				debugClientEnabled = debugEnabled || debugClientEnabledButton.getSelection();
-				updateDebugButtons();
-			}
-		});
-
-		debugClientTraceButton = new Button(masterDebugComp, SWT.CHECK);
-		debugClientTraceButton.setText(Messages.SDMPreferencePage_14);
-		gd = new GridData();
-		gd.horizontalIndent = 20;
-		debugClientTraceButton.setLayoutData(gd);
-		debugClientTraceButton.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				widgetSelected(e);
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				if (debugClientTraceButton.getSelection()) {
-					debugClientLevel |= SDMPreferenceConstants.DEBUG_CLIENT_TRACING;
-				} else {
-					debugClientLevel &= ~SDMPreferenceConstants.DEBUG_CLIENT_TRACING;
-				}
-			}
-		});
-
-		debugClientTraceMoreButton = new Button(masterDebugComp, SWT.CHECK);
-		debugClientTraceMoreButton.setText(Messages.SDMPreferencePage_15);
-		gd = new GridData();
-		gd.horizontalIndent = 20;
-		debugClientTraceMoreButton.setLayoutData(gd);
-		debugClientTraceMoreButton.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				widgetSelected(e);
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				if (debugClientTraceMoreButton.getSelection()) {
-					debugClientLevel |= SDMPreferenceConstants.DEBUG_CLIENT_TRACING_MORE;
-				} else {
-					debugClientLevel &= ~SDMPreferenceConstants.DEBUG_CLIENT_TRACING_MORE;
-				}
-			}
-		});
-
-		debugClientOutputButton = new Button(masterDebugComp, SWT.CHECK);
-		debugClientOutputButton.setText(Messages.SDMPreferencePage_16);
-		gd = new GridData();
-		gd.horizontalIndent = 20;
-		debugClientOutputButton.setLayoutData(gd);
-		debugClientOutputButton.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				widgetSelected(e);
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				if (debugClientOutputButton.getSelection()) {
-					debugClientLevel |= SDMPreferenceConstants.DEBUG_CLIENT_OUTPUT;
-				} else if (!debugEnabled) {
-					debugClientLevel &= ~SDMPreferenceConstants.DEBUG_CLIENT_OUTPUT;
-				}
-				updateDebugButtons();
-			}
-		});
-
 		updateDebugButtons();
 
 		sdmBackendCombo.select(0);
@@ -521,8 +424,6 @@
 		sdmBackendPathText.setText(store.getString(SDMPreferenceConstants.PREFS_SDM_BACKEND_PATH + backend));
 		debugEnabled = store.getBoolean(SDMPreferenceConstants.SDM_DEBUG_ENABLED);
 		debugLevel = store.getInt(SDMPreferenceConstants.SDM_DEBUG_LEVEL);
-		debugClientEnabled = store.getBoolean(SDMPreferenceConstants.SDM_DEBUG_CLIENT_ENABLED);
-		debugClientLevel = store.getInt(SDMPreferenceConstants.SDM_DEBUG_CLIENT_LEVEL);
 		updateDebugButtons();
 	}
 
@@ -536,8 +437,6 @@
 		IPreferenceStore store = getPreferenceStore();
 		store.setValue(SDMPreferenceConstants.SDM_DEBUG_ENABLED, debugEnabled);
 		store.setValue(SDMPreferenceConstants.SDM_DEBUG_LEVEL, debugLevel);
-		store.setValue(SDMPreferenceConstants.SDM_DEBUG_CLIENT_ENABLED, debugClientEnabled);
-		store.setValue(SDMPreferenceConstants.SDM_DEBUG_CLIENT_LEVEL, debugClientLevel);
 		int index = sdmBackendCombo.getSelectionIndex();
 		if (index >= 0) {
 			String backend = sdmBackendCombo.getItem(index);
diff --git a/debug/org.eclipse.ptp.debug.sdm/META-INF/MANIFEST.MF b/debug/org.eclipse.ptp.debug.sdm/META-INF/MANIFEST.MF
index 9e0a59b..dff35d2 100644
--- a/debug/org.eclipse.ptp.debug.sdm/META-INF/MANIFEST.MF
+++ b/debug/org.eclipse.ptp.debug.sdm/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.ptp.debug.sdm
-Bundle-Version: 7.0.5.qualifier
+Bundle-Version: 8.0.0.qualifier
 Bundle-Vendor: %pluginProvider
 Require-Bundle: org.eclipse.ptp.proxy,
  org.eclipse.ptp.utils
diff --git a/debug/org.eclipse.ptp.debug.sdm/pom.xml b/debug/org.eclipse.ptp.debug.sdm/pom.xml
index de04da2..d63d6dc 100644
--- a/debug/org.eclipse.ptp.debug.sdm/pom.xml
+++ b/debug/org.eclipse.ptp.debug.sdm/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.debug.sdm</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   	<build>
diff --git a/debug/org.eclipse.ptp.debug.ui/META-INF/MANIFEST.MF b/debug/org.eclipse.ptp.debug.ui/META-INF/MANIFEST.MF
index 42ef2de..2530668 100644
--- a/debug/org.eclipse.ptp.debug.ui/META-INF/MANIFEST.MF
+++ b/debug/org.eclipse.ptp.debug.ui/META-INF/MANIFEST.MF
@@ -18,11 +18,11 @@
  org.eclipse.cdt.core,
  org.eclipse.cdt.debug.ui,
  org.eclipse.ptp.core,
- org.eclipse.ptp.proxy.protocol,
  org.eclipse.ptp.ui,
- org.eclipse.ptp.remote.core,
- org.eclipse.ptp.remote.ui,
- org.eclipse.ptp.debug.core
+ org.eclipse.remote.core,
+ org.eclipse.remote.ui,
+ org.eclipse.ptp.debug.core,
+ org.eclipse.ui.trace
 Bundle-ActivationPolicy: lazy
 Bundle-Vendor: %pluginProvider
 Export-Package: org.eclipse.ptp.internal.debug.ui;x-friends:="org.eclipse.ptp.launch,org.eclipse.ptp.debug.sdm.ui",
diff --git a/debug/org.eclipse.ptp.debug.ui/plugin.xml b/debug/org.eclipse.ptp.debug.ui/plugin.xml
index 6d9707a..dbd71d7 100644
--- a/debug/org.eclipse.ptp.debug.ui/plugin.xml
+++ b/debug/org.eclipse.ptp.debug.ui/plugin.xml
@@ -84,7 +84,7 @@
 				id="org.eclipse.debug.ui.launchActionSet">
 			</actionSet>
 			<actionSet
-				id="org.eclipse.cdt.debug.ui.debugActionSet">
+				id="org.eclipse.ptp.debug.ui.debugActionSet">
 			</actionSet>
 		</perspectiveExtension>
 	</extension>   	
@@ -152,8 +152,7 @@
 		point="org.eclipse.ui.actionSets">
 		<actionSet
         id="org.eclipse.ptp.debug.ui.debugActionSet"
-        label="%DebugActionSet.label"
-        visible="true">
+        label="%DebugActionSet.label">
 			<menu
 				label="%RunMenu.label"
 				path="additions"
@@ -163,50 +162,29 @@
 				id="org.eclipse.ptp.debug.ui.actions.ResumeAtLine"
 				class="org.eclipse.ptp.internal.debug.ui.actions.RetargetResumeAtLineAction"
 				disabledIcon="icons/tool/jump_co_disable.gif"
-				enablesFor="1"
 				icon="icons/tool/jump_co_normal.gif"
 				helpContextId="jump_to_line_action_context"
 				label="%GlobalJumpToLineAction.label"
 				menubarPath="org.eclipse.ui.run/stepGroup">
-				<enablement>
-					<pluginState
-						value="activated"
-						id="org.eclipse.ptp.debug.ui">
-					</pluginState>
-				</enablement>
 			</action>
 			<action
 				id="org.eclipse.ptp.debug.internal.ui.actions.SignalZeroWorkbenchActionDelegate"
 				class="org.eclipse.ptp.internal.debug.ui.actions.SignalZeroWorkbenchActionDelegate"
 				disabledIcon="icons/tool/signal0_co_disable.gif"
-				enablesFor="1"
 				icon="icons/tool/signal0_co_normal.gif"
 				helpContextId="resume_without_signal_action_context"
 				label="%SignalZeroAction.label"
 				menubarPath="org.eclipse.ui.run/stepGroup"
 				tooltip="%SignalZeroAction.tooltip">
-				<enablement>
-					<pluginState
-						value="activated"
-						id="org.eclipse.ptp.debug.ui">
-					</pluginState>
-				</enablement>
 			</action>
 			<action
 				id="org.eclipse.ptp.debug.ui.internal.actions.RestartActionDelegate"
 				class="org.eclipse.ptp.internal.debug.ui.actions.RestartActionDelegate"
 				disabledIcon="icons/tool/restart_disable.gif"
-				enablesFor="1"
 				icon="icons/tool/restart_normal.gif"
 				helpContextId="restart_action_context"
 				label="%RestartAction.label"
 				menubarPath="org.eclipse.ui.run/stepGroup">
-				<enablement>
-					<pluginState
-						value="activated"
-						id="org.eclipse.ptp.debug.ui">
-					</pluginState>
-				</enablement>
 			</action>
 		</actionSet>
 	</extension>
@@ -285,6 +263,12 @@
 				menubarPath="stepGroup"
 				enablesFor="1"
 				id="org.eclipse.ptp.debug.internal.ui.actions.RestartActionDelegate">
+				<enablement>
+					<pluginState
+						value="activated"
+						id="org.eclipse.ptp.debug.ui">
+					</pluginState>
+				</enablement>
 				<selection class="org.eclipse.ptp.debug.core.model.IRestart"/>
 			</action>
 			<action
@@ -313,6 +297,12 @@
 				class="org.eclipse.ptp.internal.debug.ui.actions.SignalZeroWorkbenchActionDelegate"
 				menubarPath="threadGroup"
 				id="org.eclipse.ptp.debug.internal.ui.actions.SignalZeroWorkbenchActionDelegate">
+				<enablement>
+					<pluginState
+						value="activated"
+						id="org.eclipse.ptp.debug.ui">
+					</pluginState>
+				</enablement>
 				<selection class="org.eclipse.ptp.debug.core.model.IResumeWithoutSignal"/>
 			</action>
 		</viewerContribution>
@@ -568,5 +558,16 @@
        </enablement>
     </toggleTargetFactory>
  </extension>
+ <extension
+       point="org.eclipse.ui.trace.traceComponents">
+    <component
+          id="org.eclipse.ptp.debug.core.component"
+          label="PTP Debug Core">
+       <bundle
+             consumed="true"
+             name="org.eclipse.ptp.debug.core">
+       </bundle>
+    </component>
+ </extension>
 
 </plugin>
diff --git a/debug/org.eclipse.ptp.debug.ui/pom.xml b/debug/org.eclipse.ptp.debug.ui/pom.xml
index c09d06a..7a0dd9c 100644
--- a/debug/org.eclipse.ptp.debug.ui/pom.xml
+++ b/debug/org.eclipse.ptp.debug.ui/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/debug/org.eclipse.ptp.debug.ui/src/org/eclipse/ptp/internal/debug/ui/PAnnotationManager.java b/debug/org.eclipse.ptp.debug.ui/src/org/eclipse/ptp/internal/debug/ui/PAnnotationManager.java
index 0053c67..ae91c9a 100644
--- a/debug/org.eclipse.ptp.debug.ui/src/org/eclipse/ptp/internal/debug/ui/PAnnotationManager.java
+++ b/debug/org.eclipse.ptp.debug.ui/src/org/eclipse/ptp/internal/debug/ui/PAnnotationManager.java
@@ -57,7 +57,9 @@
 import org.eclipse.ptp.debug.core.model.IPDebugTarget;
 import org.eclipse.ptp.debug.core.model.IPStackFrame;
 import org.eclipse.ptp.debug.core.model.IPThread;
+import org.eclipse.ptp.debug.core.pdi.IPDILocator;
 import org.eclipse.ptp.debug.core.pdi.PDIException;
+import org.eclipse.ptp.debug.core.pdi.model.IPDIStackFrameDescriptor;
 import org.eclipse.ptp.debug.core.pdi.request.IPDIListStackFramesRequest;
 import org.eclipse.ptp.internal.debug.core.PTPDebugCorePlugin;
 import org.eclipse.ptp.internal.debug.core.sourcelookup.PSourceLookupDirector;
@@ -65,8 +67,6 @@
 import org.eclipse.ptp.internal.ui.listeners.IJobChangedListener;
 import org.eclipse.ptp.internal.ui.model.IElementHandler;
 import org.eclipse.ptp.internal.ui.model.IElementSet;
-import org.eclipse.ptp.proxy.debug.client.ProxyDebugLocator;
-import org.eclipse.ptp.proxy.debug.client.ProxyDebugStackFrame;
 import org.eclipse.swt.custom.BusyIndicator;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.IEditorInput;
@@ -1152,18 +1152,12 @@
 					.getListStackFramesRequest(session.getPDISession(), tasks, low, high);
 			try {
 				session.getPDISession().getEventRequestManager().addEventRequest(request);
-				Map<TaskSet, Object> map = request.getResultMap(tasks);
-				for (TaskSet sTasks : map.keySet()) {
-					Object value = map.get(sTasks);
-					if (value instanceof ProxyDebugStackFrame[]) {
-						ProxyDebugStackFrame[] frames = (ProxyDebugStackFrame[]) value;
-						for (ProxyDebugStackFrame frame : frames) {
-							ProxyDebugLocator locator = frame.getLocator();
-							if (locator.getLineNumber() > 0) {
-								addUnregisterAnnotation(jobId, frame.getLevel(), locator.getFile(), locator.getLineNumber(), sTasks);
-								break;
-							}
-						}
+				IPDIStackFrameDescriptor[] frames = request.getStackFrames(tasks);
+				for (IPDIStackFrameDescriptor frame : frames) {
+					IPDILocator locator = frame.getLocator();
+					if (locator.getLineNumber() > 0) {
+						addUnregisterAnnotation(jobId, frame.getLevel(), locator.getFile(), locator.getLineNumber(), tasks);
+						break;
 					}
 				}
 			} catch (PDIException e) {
diff --git a/debug/org.eclipse.ptp.debug.ui/src/org/eclipse/ptp/internal/debug/ui/sourcelookup/ResourceMappingSourceContainerBrowser.java b/debug/org.eclipse.ptp.debug.ui/src/org/eclipse/ptp/internal/debug/ui/sourcelookup/ResourceMappingSourceContainerBrowser.java
index 7b17e2b..81e3fbe 100755
--- a/debug/org.eclipse.ptp.debug.ui/src/org/eclipse/ptp/internal/debug/ui/sourcelookup/ResourceMappingSourceContainerBrowser.java
+++ b/debug/org.eclipse.ptp.debug.ui/src/org/eclipse/ptp/internal/debug/ui/sourcelookup/ResourceMappingSourceContainerBrowser.java
@@ -20,10 +20,10 @@
 import org.eclipse.jface.window.Window;
 import org.eclipse.ptp.core.util.LaunchUtils;
 import org.eclipse.ptp.internal.debug.core.sourcelookup.ResourceMappingSourceContainer;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnectionManager;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.RemoteServices;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.model.WorkbenchContentProvider;
 import org.eclipse.ui.model.WorkbenchLabelProvider;
diff --git a/debug/org.eclipse.ptp.debug.ui/src/org/eclipse/ptp/internal/debug/ui/sourcelookup/ResourceMappingSourceContainerDialog.java b/debug/org.eclipse.ptp.debug.ui/src/org/eclipse/ptp/internal/debug/ui/sourcelookup/ResourceMappingSourceContainerDialog.java
index a2926d3..0112865 100755
--- a/debug/org.eclipse.ptp.debug.ui/src/org/eclipse/ptp/internal/debug/ui/sourcelookup/ResourceMappingSourceContainerDialog.java
+++ b/debug/org.eclipse.ptp.debug.ui/src/org/eclipse/ptp/internal/debug/ui/sourcelookup/ResourceMappingSourceContainerDialog.java
@@ -24,11 +24,11 @@
 import org.eclipse.jface.viewers.ViewerFilter;
 import org.eclipse.ptp.internal.debug.ui.PTPDebugUIPlugin;
 import org.eclipse.ptp.internal.debug.ui.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.ui.IRemoteUIConnectionManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIFileManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIServices;
-import org.eclipse.ptp.remote.ui.RemoteUIServices;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.ui.IRemoteUIConnectionManager;
+import org.eclipse.remote.ui.IRemoteUIFileManager;
+import org.eclipse.remote.ui.IRemoteUIServices;
+import org.eclipse.remote.ui.RemoteUIServices;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
diff --git a/debug/org.eclipse.ptp.debug.ui/src/org/eclipse/ptp/internal/debug/ui/views/ParallelDebugViewEventHandler.java b/debug/org.eclipse.ptp.debug.ui/src/org/eclipse/ptp/internal/debug/ui/views/ParallelDebugViewEventHandler.java
index ea2588d..d30235a 100644
--- a/debug/org.eclipse.ptp.debug.ui/src/org/eclipse/ptp/internal/debug/ui/views/ParallelDebugViewEventHandler.java
+++ b/debug/org.eclipse.ptp.debug.ui/src/org/eclipse/ptp/internal/debug/ui/views/ParallelDebugViewEventHandler.java
@@ -30,6 +30,7 @@
 import org.eclipse.ptp.debug.core.event.IPDebugInfo;
 import org.eclipse.ptp.debug.core.event.IPDebugRegisterInfo;
 import org.eclipse.ptp.debug.core.launch.IPLaunch;
+import org.eclipse.ptp.internal.debug.core.PDebugOptions;
 import org.eclipse.ptp.internal.debug.ui.PDebugUIUtils;
 import org.eclipse.ptp.internal.debug.ui.PTPDebugUIPlugin;
 import org.eclipse.ptp.internal.debug.ui.UIDebugManager;
@@ -132,7 +133,7 @@
 			break;
 		case IPDebugEvent.RESUME:
 			time_record = System.currentTimeMillis();
-			System.err.println("================= TIME RESUME: " + time_record); //$NON-NLS-1$
+			PDebugOptions.trace("================= TIME RESUME: " + time_record); //$NON-NLS-1$
 			// ((UIDebugManager)
 			// getPView().getUIManager()).updateVariableValue(false,
 			// info.getAllRegisteredTasks());
@@ -142,7 +143,7 @@
 			IPSession s = ((UIDebugManager) getPView().getUIManager()).getDebugSession(jobId);
 			if (s != null) {
 				if (s.getTasks().cardinality() == s.getPDISession().getTaskManager().getSuspendedTasks().cardinality()) {
-					System.err.println("================= TIME ALL SUSPENDED: " + (System.currentTimeMillis() - time_record)); //$NON-NLS-1$
+					PDebugOptions.trace("================= TIME ALL SUSPENDED: " + (System.currentTimeMillis() - time_record)); //$NON-NLS-1$
 					time_record = System.currentTimeMillis();
 				}
 			}
diff --git a/debug/org.eclipse.ptp.debug.ui/src/org/eclipse/ptp/internal/debug/ui/views/breakpoints/ToggleBreakpointsTarget.java b/debug/org.eclipse.ptp.debug.ui/src/org/eclipse/ptp/internal/debug/ui/views/breakpoints/ToggleBreakpointsTarget.java
index d5047ce..a08dc35 100644
--- a/debug/org.eclipse.ptp.debug.ui/src/org/eclipse/ptp/internal/debug/ui/views/breakpoints/ToggleBreakpointsTarget.java
+++ b/debug/org.eclipse.ptp.debug.ui/src/org/eclipse/ptp/internal/debug/ui/views/breakpoints/ToggleBreakpointsTarget.java
@@ -36,7 +36,7 @@
 import org.eclipse.ptp.debug.core.model.IPBreakpoint;
 import org.eclipse.ptp.debug.core.model.IPLineBreakpoint;
 import org.eclipse.ptp.internal.debug.core.PDebugModel;
-import org.eclipse.ptp.internal.debug.core.PDebugUtils;
+import org.eclipse.ptp.internal.debug.core.PDebugOptions;
 import org.eclipse.ptp.internal.debug.core.PTPDebugCorePlugin;
 import org.eclipse.ptp.internal.debug.ui.PTPDebugUIPlugin;
 import org.eclipse.ptp.internal.debug.ui.UIDebugManager;
@@ -243,7 +243,7 @@
 	 * (org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
 	 */
 	public void toggleMethodBreakpoints(IWorkbenchPart part, ISelection selection) throws CoreException {
-		PDebugUtils.println("*** Not Implemented YET ***"); //$NON-NLS-1$
+		PDebugOptions.trace("*** Not Implemented YET ***"); //$NON-NLS-1$
 	}
 
 	/*
diff --git a/pom.xml b/pom.xml
index f0b475d..88fd8dc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,26 +10,26 @@
 
 	<groupId>org.eclipse.ptp</groupId>
 	<artifactId>ptp-parent</artifactId>
-	<version>7.0.5-SNAPSHOT</version>
+	<version>8.0.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 	<name>PTP Parent</name>
 
 	<properties>
-		<eclipse-release>kepler</eclipse-release>
+		<eclipse-release>luna</eclipse-release>
 		<tycho-version>0.19.0</tycho-version>
 		<tycho-extras-version>${tycho-version}</tycho-extras-version>
-		<platform-version>4.3</platform-version>
+		<platform-version>4.4milestones</platform-version>
 		<platform-site>http://download.eclipse.org/eclipse/updates/${platform-version}</platform-site>
-		<tm-version>3.5</tm-version>
+		<tm-version>3.6milestones</tm-version>
 		<tm-site>http://download.eclipse.org/tm/updates/${tm-version}</tm-site>
-		<cdt-version>kepler</cdt-version>
-		<cdt-site>http://download.eclipse.org/tools/cdt/releases/${cdt-version}</cdt-site>
+		<cdt-version>luna</cdt-version>
+		<cdt-site>http://download.eclipse.org/tools/cdt/builds/${cdt-version}/nightly</cdt-site>	
 		<egit-version>nightly</egit-version>
 		<egit-site>http://download.eclipse.org/egit/updates-${egit-version}</egit-site>
-		<photran-site>http://download.eclipse.org/tools/ptp/builds/hudson/ptp-release-photran</photran-site>
-		<!-- The following property is used by the production profile to install 
-			the final repo and associated components. It should be overridden if installing 
-			into a different location. -->
+		<photran-site>http://download.eclipse.org/tools/ptp/builds/hudson/ptp-nightly-photran</photran-site>
+		<remote-site>http://download.eclipse.org/tools/ptp/builds/remote/${eclipse-release}/nightly</remote-site>
+		<!-- The following property is used by the production profile to install the final repo and  -->
+		<!-- associated components. It should be overridden if installing into a different location. -->
 		<ptp-install-dir>/home/data/httpd/download.eclipse.org/tools/ptp/builds/${eclipse-release}/nightly</ptp-install-dir>
 	</properties>
 
@@ -54,14 +54,12 @@
 		<module>core/org.eclipse.ptp.launch</module>
 		<module>core/org.eclipse.ptp.proxy</module>
 		<module>core/org.eclipse.ptp.proxy.protocol</module>
-		<module>core/org.eclipse.ptp.remote.core</module>
 		<module>core/org.eclipse.ptp.remote.remotetools.core</module>
 		<module>core/org.eclipse.ptp.remote.remotetools.ui</module>
 		<module>core/org.eclipse.ptp.remote.rse.core</module>
 		<module>core/org.eclipse.ptp.remote.rse.ui</module>
 		<module>core/org.eclipse.ptp.remote.server.core</module>
 		<module>core/org.eclipse.ptp.remote.terminal</module>
-		<module>core/org.eclipse.ptp.remote.ui</module>
 		<module>core/org.eclipse.ptp.services.core</module>
 		<module>core/org.eclipse.ptp.services.ui</module>
 		<module>core/org.eclipse.ptp.ui</module>
@@ -99,6 +97,7 @@
 		<module>releng/org.eclipse.ptp.etfw-feature</module>
 		<module>releng/org.eclipse.ptp.etfw.tau-feature</module>
 		<module>releng/org.eclipse.ptp.etfw.tau.fortran-feature</module>
+		<module>releng/org.eclipse.ptp.etfw.feedback.perfsuite-feature</module>
 		<module>releng/org.eclipse.ptp.fortran-feature</module>
 		<module>releng/org.eclipse.ptp-feature</module>
 		<module>releng/org.eclipse.ptp.gem-feature</module>
@@ -154,6 +153,8 @@
 		<module>tools/etfw/org.eclipse.ptp.etfw</module>
 		<module>tools/etfw/org.eclipse.ptp.etfw.doc.user</module>
 		<module>tools/etfw/org.eclipse.ptp.etfw.feedback</module>
+		<module>tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite</module>
+		<module>tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user</module>
 		<module>tools/etfw/org.eclipse.ptp.etfw.parallel</module>
 		<module>tools/etfw/org.eclipse.ptp.etfw.jaxb</module>
 		<module>tools/etfw/org.eclipse.ptp.etfw.launch</module>
@@ -217,6 +218,11 @@
 			<url>${photran-site}</url>
 			<layout>p2</layout>
 		</repository>
+		<repository>
+			<id>remote</id>
+			<url>${remote-site}</url>
+			<layout>p2</layout>
+		</repository>
 	</repositories>
 
 	<pluginRepositories>
@@ -230,10 +236,6 @@
 				<enabled>true</enabled>
 			</releases>
 		</pluginRepository>
-		<pluginRepository>
-			<id>maven.eclipse.org</id>
-			<url>http://maven.eclipse.org/nexus/content/repositories/milestone-indigo</url>
-		</pluginRepository>
 	</pluginRepositories>
 
 	<build>
@@ -412,7 +414,7 @@
 				<plugin>
 					<groupId>org.apache.maven.plugins</groupId>
 					<artifactId>maven-resources-plugin</artifactId>
-					<version>2.4.1</version>
+					<version>2.6</version>
 					<configuration>
 						<encoding>ISO-8859-1</encoding>
 					</configuration>
@@ -420,12 +422,12 @@
 				<plugin>
 					<groupId>org.apache.maven.plugins</groupId>
 					<artifactId>maven-antrun-plugin</artifactId>
-					<version>1.3</version>
+					<version>1.7</version>
 				</plugin>
 				<plugin>
 					<groupId>org.codehaus.mojo</groupId>
 					<artifactId>findbugs-maven-plugin</artifactId>
-					<version>2.3.2</version>
+					<version>2.5.3</version>
 					<configuration>
 						<findbugsXmlOutput>true</findbugsXmlOutput>
 						<failOnError>false</failOnError>
@@ -441,7 +443,7 @@
 				<plugin>
 					<groupId>org.apache.maven.plugins</groupId>
 					<artifactId>maven-pmd-plugin</artifactId>
-					<version>2.5</version>
+					<version>3.0.1</version>
 					<configuration>
 						<sourceEncoding>utf-8</sourceEncoding>
 						<minimumTokens>100</minimumTokens>
diff --git a/rdt/org.eclipse.ptp.rdt.core.remotejars/META-INF/MANIFEST.MF b/rdt/org.eclipse.ptp.rdt.core.remotejars/META-INF/MANIFEST.MF
index b32e1e1..f9350cd 100644
--- a/rdt/org.eclipse.ptp.rdt.core.remotejars/META-INF/MANIFEST.MF
+++ b/rdt/org.eclipse.ptp.rdt.core.remotejars/META-INF/MANIFEST.MF
@@ -2,11 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Remotejars
 Bundle-SymbolicName: org.eclipse.ptp.rdt.core.remotejars
-Bundle-Version: 7.0.5.qualifier
+Bundle-Version: 8.0.0.qualifier
 Require-Bundle: org.eclipse.ptp.rdt.core;bundle-version="1.1.0",
  org.eclipse.ptp.rdt.make.ui;bundle-version="1.1.0",
  org.eclipse.ptp.rdt.managedbuilder.xlc.ui;bundle-version="3.0.0",
  org.eclipse.ptp.rdt.ui;bundle-version="3.1.100",
- org.eclipse.ptp.remote.rse.core;bundle-version="5.0.1",
  org.eclipse.ptp.rdt.xlc;bundle-version="1.0.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/rdt/org.eclipse.ptp.rdt.core.remotejars/pom.xml b/rdt/org.eclipse.ptp.rdt.core.remotejars/pom.xml
index 32003c8..b2e026c 100644
--- a/rdt/org.eclipse.ptp.rdt.core.remotejars/pom.xml
+++ b/rdt/org.eclipse.ptp.rdt.core.remotejars/pom.xml
@@ -7,12 +7,12 @@
 	<parent>
 		<groupId>org.eclipse.ptp</groupId>
 		<artifactId>ptp-parent</artifactId>
-		<version>7.0.5-SNAPSHOT</version>
+		<version>8.0.0-SNAPSHOT</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
 	<artifactId>org.eclipse.ptp.rdt.core.remotejars</artifactId>
-	<version>7.0.5-SNAPSHOT</version>
+	<version>8.0.0-SNAPSHOT</version>
 	<packaging>eclipse-plugin</packaging>
 
 	<profiles>
diff --git a/rdt/org.eclipse.ptp.rdt.core.stubs/pom.xml b/rdt/org.eclipse.ptp.rdt.core.stubs/pom.xml
index 7207ff1..4e6841d 100644
--- a/rdt/org.eclipse.ptp.rdt.core.stubs/pom.xml
+++ b/rdt/org.eclipse.ptp.rdt.core.stubs/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ptp</groupId>
 		<artifactId>ptp-parent</artifactId>
-		<version>7.0.5-SNAPSHOT</version>
+		<version>8.0.0-SNAPSHOT</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
diff --git a/rdt/org.eclipse.ptp.rdt.core/META-INF/MANIFEST.MF b/rdt/org.eclipse.ptp.rdt.core/META-INF/MANIFEST.MF
index 7177bbf..a5cfd05 100755
--- a/rdt/org.eclipse.ptp.rdt.core/META-INF/MANIFEST.MF
+++ b/rdt/org.eclipse.ptp.rdt.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name.0
 Bundle-SymbolicName: org.eclipse.ptp.rdt.core;singleton:=true
-Bundle-Version: 4.2.0.qualifier
+Bundle-Version: 5.0.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.cdt.core;bundle-version="5.0.2",
  org.eclipse.core.runtime,
@@ -12,7 +12,7 @@
  org.eclipse.cdt.make.core;bundle-version="5.0.1",
  org.eclipse.core.filesystem;bundle-version="1.2.0",
  org.eclipse.cdt.managedbuilder.core;bundle-version="5.0.1",
- org.eclipse.ptp.remote.core,
+ org.eclipse.remote.core,
  org.eclipse.dstore.extra;bundle-version="2.1.100",
  org.eclipse.ptp.services.core,
  org.eclipse.rse.services.dstore;bundle-version="3.1.1",
diff --git a/rdt/org.eclipse.ptp.rdt.core/plugin.xml b/rdt/org.eclipse.ptp.rdt.core/plugin.xml
index fa0d8af..62de554 100755
--- a/rdt/org.eclipse.ptp.rdt.core/plugin.xml
+++ b/rdt/org.eclipse.ptp.rdt.core/plugin.xml
@@ -66,7 +66,7 @@
       </runtime>
    </extension>
    <extension
-         point="org.eclipse.ptp.remote.core.remoteResources">
+         point="org.eclipse.remote.core.remoteResources">
       <remoteResource
             class="org.eclipse.ptp.internal.rdt.core.RemoteResource"
             nature="org.eclipse.ptp.rdt.core.remoteNature">
diff --git a/rdt/org.eclipse.ptp.rdt.core/pom.xml b/rdt/org.eclipse.ptp.rdt.core/pom.xml
index e18de35..72633a7 100644
--- a/rdt/org.eclipse.ptp.rdt.core/pom.xml
+++ b/rdt/org.eclipse.ptp.rdt.core/pom.xml
@@ -6,11 +6,11 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.rdt.core</artifactId>
-  <version>4.2.0-SNAPSHOT</version>
+  <version>5.0.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/internal/rdt/core/RemoteResource.java b/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/internal/rdt/core/RemoteResource.java
index c553978..6159ce1 100644
--- a/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/internal/rdt/core/RemoteResource.java
+++ b/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/internal/rdt/core/RemoteResource.java
@@ -15,7 +15,7 @@
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.ptp.remote.core.IRemoteResource;
+import org.eclipse.remote.core.IRemoteResource;
 
 public class RemoteResource implements IRemoteResource {
 	private IResource fResource;
diff --git a/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/internal/rdt/core/remotemake/RemoteProcessClosure.java b/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/internal/rdt/core/remotemake/RemoteProcessClosure.java
index 206ae3d..54ac46e 100644
--- a/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/internal/rdt/core/remotemake/RemoteProcessClosure.java
+++ b/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/internal/rdt/core/remotemake/RemoteProcessClosure.java
@@ -18,7 +18,7 @@
 import java.io.OutputStream;
 import java.text.MessageFormat;
 
-import org.eclipse.ptp.remote.core.IRemoteProcess;
+import org.eclipse.remote.core.IRemoteProcess;
 
 /**
  * @author crecoskie
diff --git a/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/remotemake/Messages.java b/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/remotemake/Messages.java
new file mode 100644
index 0000000..f28be6a
--- /dev/null
+++ b/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/remotemake/Messages.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2013 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.rdt.core.remotemake;
+
+import org.eclipse.osgi.util.NLS;
+
+/**
+ * @since 5.0
+ */
+public class Messages extends NLS {
+	private static final String BUNDLE_NAME = "org.eclipse.ptp.rdt.core.remotemake.messages"; //$NON-NLS-1$
+	public static String RemoteCommandLauncher_env_parse_error;
+	static {
+		// initialize resource bundle
+		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+	}
+
+	private Messages() {
+	}
+}
diff --git a/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/remotemake/RemoteCommandLauncher.java b/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/remotemake/RemoteCommandLauncher.java
index 9c82820..640ad89 100644
--- a/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/remotemake/RemoteCommandLauncher.java
+++ b/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/remotemake/RemoteCommandLauncher.java
@@ -34,13 +34,13 @@
 import org.eclipse.ptp.internal.rdt.core.remotemake.RemoteProcessClosure;
 import org.eclipse.ptp.rdt.core.serviceproviders.IRemoteExecutionServiceProvider;
 import org.eclipse.ptp.rdt.core.services.IRDTServiceConstants;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.core.IRemoteProcess;
-import org.eclipse.ptp.remote.core.IRemoteProcessBuilder;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteProcessAdapter;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteProcess;
+import org.eclipse.remote.core.IRemoteProcessBuilder;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.RemoteProcessAdapter;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
 import org.eclipse.ptp.services.core.IService;
 import org.eclipse.ptp.services.core.IServiceConfiguration;
 import org.eclipse.ptp.services.core.IServiceProvider;
@@ -154,18 +154,30 @@
 			for(int k = 0; k <  args.length; k++)
 				command.add(args[k]);
 						
-			IRemoteProcessBuilder processBuilder = remoteServices.getProcessBuilder(connection, command);
+			IRemoteProcessBuilder processBuilder = connection.getProcessBuilder(command);
 			
 			remoteEnvMap = processBuilder.environment();
 			remoteEnvMap.clear();
 			
 			for(String envVar : env) {
-				String[] splitStr = envVar.split("="); //$NON-NLS-1$
-				remoteEnvMap.put(splitStr[0], splitStr[1]);
+				int eqIdx = envVar.indexOf('=');
+				if (eqIdx == -1)
+					throw new CoreException(
+							new Status(
+									IStatus.ERROR,
+									"org.eclipse.ptp.rdt.core", Messages.RemoteCommandLauncher_env_parse_error + envVar, null)); //$NON-NLS-1$
+				String var = envVar.substring(0, eqIdx);
+				if (eqIdx == (envVar.length() - 1)) {
+					// The value of the variable is a null string
+					remoteEnvMap.put(var, null);
+				} else {
+					String val = envVar.substring(eqIdx + 1, envVar.length());
+					remoteEnvMap.put(var, val);
+				}
 			}
 			
 			// set the directory in which to run the command
-			IRemoteFileManager fileManager = remoteServices.getFileManager(connection);
+			IRemoteFileManager fileManager = connection.getFileManager();
 			if(changeToDirectory != null && fileManager != null) {
 				IFileStore directoryStore = null;
 				
diff --git a/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/remotemake/RemoteMakeBuilder.java b/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/remotemake/RemoteMakeBuilder.java
index 84008d4..8cf11cd 100644
--- a/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/remotemake/RemoteMakeBuilder.java
+++ b/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/remotemake/RemoteMakeBuilder.java
@@ -81,11 +81,11 @@
 import org.eclipse.ptp.rdt.core.activator.Activator;
 import org.eclipse.ptp.rdt.core.serviceproviders.IRemoteExecutionServiceProvider;
 import org.eclipse.ptp.rdt.core.services.IRDTServiceConstants;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.core.IRemoteProcess;
-import org.eclipse.ptp.remote.core.IRemoteProcessBuilder;
-import org.eclipse.ptp.remote.core.IRemoteServices;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteProcess;
+import org.eclipse.remote.core.IRemoteProcessBuilder;
+import org.eclipse.remote.core.IRemoteServices;
 import org.eclipse.ptp.services.core.IService;
 import org.eclipse.ptp.services.core.IServiceConfiguration;
 import org.eclipse.ptp.services.core.IServiceProvider;
@@ -348,7 +348,7 @@
 					for(int k = 0; k <  buildArguments.length; k++)
 						command.add(buildArguments[k]);
 								
-					IRemoteProcessBuilder processBuilder = remoteServices.getProcessBuilder(connection, command);
+					IRemoteProcessBuilder processBuilder = connection.getProcessBuilder(command);
 					
 					// set the environment for the builder
 					Map<String, String> remoteEnvMap = processBuilder.environment();
@@ -361,7 +361,7 @@
 					remoteEnvMap.putAll(envMap);
 					
 					// set the directory in which to run the command
-					IRemoteFileManager fileManager = remoteServices.getFileManager(connection);
+					IRemoteFileManager fileManager = connection.getFileManager();
 					if (fileManager != null) {
 						processBuilder.directory(fileManager.getResource(workingDirectory.toString()));
 					}
diff --git a/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/remotemake/RemoteRunSIProvider.java b/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/remotemake/RemoteRunSIProvider.java
index fd53792..8a3269f 100644
--- a/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/remotemake/RemoteRunSIProvider.java
+++ b/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/remotemake/RemoteRunSIProvider.java
@@ -39,11 +39,11 @@
 import org.eclipse.ptp.rdt.core.messages.Messages;
 import org.eclipse.ptp.rdt.core.serviceproviders.IRemoteExecutionServiceProvider;
 import org.eclipse.ptp.rdt.core.services.IRDTServiceConstants;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.core.IRemoteProcess;
-import org.eclipse.ptp.remote.core.IRemoteProcessBuilder;
-import org.eclipse.ptp.remote.core.IRemoteServices;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteProcess;
+import org.eclipse.remote.core.IRemoteProcessBuilder;
+import org.eclipse.remote.core.IRemoteServices;
 import org.eclipse.ptp.services.core.IService;
 import org.eclipse.ptp.services.core.IServiceConfiguration;
 import org.eclipse.ptp.services.core.IServiceProvider;
@@ -130,14 +130,14 @@
 		if (remoteServices == null)
 			return false;
 		
-		IRemoteProcessBuilder processBuilder = remoteServices.getProcessBuilder(connection, runCommand);
+		IRemoteProcessBuilder processBuilder = connection.getProcessBuilder(runCommand);
 		processBuilder.redirectErrorStream(true);
 
 		// get the configuration directory for the provider... this is where the
 		// build
 		// should execute
 		String configPath = executionProvider.getConfigLocation();
-		IRemoteFileManager remoteFileManager = remoteServices.getFileManager(connection);
+		IRemoteFileManager remoteFileManager = connection.getFileManager();
 		IFileStore workingDir = remoteFileManager.getResource(configPath);
 
 		// set the working directory for the process to be the config directory
diff --git a/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/remotemake/RemoteSpecsRunSIProvider.java b/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/remotemake/RemoteSpecsRunSIProvider.java
index 4ff93df..205534c 100644
--- a/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/remotemake/RemoteSpecsRunSIProvider.java
+++ b/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/remotemake/RemoteSpecsRunSIProvider.java
@@ -36,11 +36,11 @@
 import org.eclipse.ptp.rdt.core.RDTLog;
 import org.eclipse.ptp.rdt.core.serviceproviders.IRemoteExecutionServiceProvider;
 import org.eclipse.ptp.rdt.core.services.IRDTServiceConstants;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.core.IRemoteProcessBuilder;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteProcessBuilder;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
 import org.eclipse.ptp.services.core.IService;
 import org.eclipse.ptp.services.core.IServiceConfiguration;
 import org.eclipse.ptp.services.core.IServiceProvider;
@@ -134,9 +134,9 @@
 				}
 
 			// get the config dir
-			IRemoteProcessBuilder processBuilder = remoteServices.getProcessBuilder(connection, ""); //$NON-NLS-1$
+			IRemoteProcessBuilder processBuilder = connection.getProcessBuilder(""); //$NON-NLS-1$
 			String configPath = executionProvider.getConfigLocation();
-			IRemoteFileManager remoteFileManager = remoteServices.getFileManager(connection);
+			IRemoteFileManager remoteFileManager = connection.getFileManager();
 			IFileStore workingDir = remoteFileManager.getResource(configPath);
 
 			// set the working directory for the process to be the config
@@ -220,7 +220,7 @@
 				}
 			
 		// get the CWD
-		IRemoteProcessBuilder processBuilder = remoteServices.getProcessBuilder(connection, ""); //$NON-NLS-1$
+		IRemoteProcessBuilder processBuilder = connection.getProcessBuilder( ""); //$NON-NLS-1$
 		IFileStore workingDir = processBuilder.directory();
 		
 		IPath path = new Path(EFSExtensionManager.getDefault().getPathFromURI(workingDir.toURI()));
diff --git a/core/org.eclipse.ptp.remote.core.tests/plugin.properties b/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/remotemake/messages.properties
old mode 100755
new mode 100644
similarity index 71%
rename from core/org.eclipse.ptp.remote.core.tests/plugin.properties
rename to rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/remotemake/messages.properties
index c8959a9..70dacc8
--- a/core/org.eclipse.ptp.remote.core.tests/plugin.properties
+++ b/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/remotemake/messages.properties
@@ -1,13 +1,11 @@
 ###############################################################################
-# Copyright (c) 2009 IBM Corporation and others.
+# Copyright (c) 2012,2013 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
 # http://www.eclipse.org/legal/epl-v10.html
 #
 # Contributors:
-#     IBM Corporation - initial API and implementation
+#     IBM Corporation - initial version
 ###############################################################################
-
-pluginName=PTP Remote Core Tests
-pluginProvider=Eclipse PTP
+RemoteCommandLauncher_env_parse_error=Error parsing environment string: 
diff --git a/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/serviceproviders/IRemoteExecutionServiceProvider.java b/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/serviceproviders/IRemoteExecutionServiceProvider.java
index 50015ab..a7d196b 100644
--- a/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/serviceproviders/IRemoteExecutionServiceProvider.java
+++ b/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/rdt/core/serviceproviders/IRemoteExecutionServiceProvider.java
@@ -10,8 +10,8 @@
  *******************************************************************************/
 package org.eclipse.ptp.rdt.core.serviceproviders;
 
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteServices;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteServices;
 import org.eclipse.ptp.services.core.IServiceProvider;
 
 /**
@@ -31,6 +31,7 @@
 	 * Gets the provider of remote services.
 	 * 
 	 * @return IRemoteServices
+	 * @since 5.0
 	 */
 	public IRemoteServices getRemoteServices();
 
@@ -39,6 +40,7 @@
 	 * open, so clients should check to make sure it is open before using it.
 	 * 
 	 * @return IRemoteConnection
+	 * @since 5.0
 	 */
 	public IRemoteConnection getConnection();
 
@@ -54,7 +56,7 @@
 	 * Set the connection to use for this service.
 	 * 
 	 * @param connection remote connection
-	 * @since 3.1
+	 * @since 5.0
 	 */
 	public void setRemoteToolsConnection(IRemoteConnection connection);
 	
diff --git a/rdt/org.eclipse.ptp.rdt.doc.user/pom.xml b/rdt/org.eclipse.ptp.rdt.doc.user/pom.xml
index 0ce5269..444a027 100644
--- a/rdt/org.eclipse.ptp.rdt.doc.user/pom.xml
+++ b/rdt/org.eclipse.ptp.rdt.doc.user/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rdt/org.eclipse.ptp.rdt.editor/pom.xml b/rdt/org.eclipse.ptp.rdt.editor/pom.xml
index ad60162..83e287f 100644
--- a/rdt/org.eclipse.ptp.rdt.editor/pom.xml
+++ b/rdt/org.eclipse.ptp.rdt.editor/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rdt/org.eclipse.ptp.rdt.make.ui/pom.xml b/rdt/org.eclipse.ptp.rdt.make.ui/pom.xml
index 3ea6145..3bd99e5 100644
--- a/rdt/org.eclipse.ptp.rdt.make.ui/pom.xml
+++ b/rdt/org.eclipse.ptp.rdt.make.ui/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rdt/org.eclipse.ptp.rdt.managedbuilder.gnu.ui/pom.xml b/rdt/org.eclipse.ptp.rdt.managedbuilder.gnu.ui/pom.xml
index 9555923..d4717c4 100644
--- a/rdt/org.eclipse.ptp.rdt.managedbuilder.gnu.ui/pom.xml
+++ b/rdt/org.eclipse.ptp.rdt.managedbuilder.gnu.ui/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rdt/org.eclipse.ptp.rdt.managedbuilder.xlc.ui/META-INF/MANIFEST.MF b/rdt/org.eclipse.ptp.rdt.managedbuilder.xlc.ui/META-INF/MANIFEST.MF
index c9d560e..c05cab4 100644
--- a/rdt/org.eclipse.ptp.rdt.managedbuilder.xlc.ui/META-INF/MANIFEST.MF
+++ b/rdt/org.eclipse.ptp.rdt.managedbuilder.xlc.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: org.eclipse.ptp.rdt.managedbuilder.xlc.ui;singleton:=true
-Bundle-Version: 3.4.0.qualifier
+Bundle-Version: 4.0.0.qualifier
 Bundle-Activator: org.eclipse.ptp.rdt.managedbuilder.xlc.ui.Activator
 Bundle-Localization: plugin
 Bundle-Vendor: %Bundle-Vendor
@@ -13,14 +13,14 @@
  org.eclipse.cdt.managedbuilder.xlc.ui;bundle-version="6.0.0",
  org.eclipse.ptp.rdt.core;bundle-version="1.0.0",
  org.eclipse.core.resources;bundle-version="3.5.0",
- org.eclipse.ptp.remote.core;bundle-version="2.1.0",
+ org.eclipse.remote.core,
  org.eclipse.cdt.core;bundle-version="5.1.0",
  org.eclipse.ptp.services.core;bundle-version="1.0.0",
  org.eclipse.cdt.make.xlc.core;bundle-version="5.0.0",
  org.eclipse.core.filesystem;bundle-version="1.2.0",
  org.eclipse.ptp.rdt.ui;bundle-version="1.0.0",
  com.ibm.icu;bundle-version="3.8.1",
- org.eclipse.ptp.remote.ui;bundle-version="5.0.0"
+ org.eclipse.remote.ui
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.internal.ptp.rdt.managedbuilder.xlc.ui.scannerdiscovery,
diff --git a/rdt/org.eclipse.ptp.rdt.managedbuilder.xlc.ui/pom.xml b/rdt/org.eclipse.ptp.rdt.managedbuilder.xlc.ui/pom.xml
index 640a30d..96ab116 100644
--- a/rdt/org.eclipse.ptp.rdt.managedbuilder.xlc.ui/pom.xml
+++ b/rdt/org.eclipse.ptp.rdt.managedbuilder.xlc.ui/pom.xml
@@ -6,11 +6,11 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.rdt.managedbuilder.xlc.ui</artifactId>
-  <version>3.4.0-SNAPSHOT</version>
+  <version>4.0.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/rdt/org.eclipse.ptp.rdt.managedbuilder.xlc.ui/src/org/eclipse/ptp/rdt/managedbuilder/xlc/ui/environment/RemoteConfigurationEnvironmentSupplier.java b/rdt/org.eclipse.ptp.rdt.managedbuilder.xlc.ui/src/org/eclipse/ptp/rdt/managedbuilder/xlc/ui/environment/RemoteConfigurationEnvironmentSupplier.java
index 6c3bc0f..53bb8de 100644
--- a/rdt/org.eclipse.ptp.rdt.managedbuilder.xlc.ui/src/org/eclipse/ptp/rdt/managedbuilder/xlc/ui/environment/RemoteConfigurationEnvironmentSupplier.java
+++ b/rdt/org.eclipse.ptp.rdt.managedbuilder.xlc.ui/src/org/eclipse/ptp/rdt/managedbuilder/xlc/ui/environment/RemoteConfigurationEnvironmentSupplier.java
@@ -27,15 +27,15 @@
 import org.eclipse.ptp.rdt.core.RDTLog;
 import org.eclipse.ptp.rdt.core.serviceproviders.IRemoteExecutionServiceProvider;
 import org.eclipse.ptp.rdt.core.services.IRDTServiceConstants;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteProcessBuilder;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
 import org.eclipse.ptp.services.core.IService;
 import org.eclipse.ptp.services.core.IServiceConfiguration;
 import org.eclipse.ptp.services.core.IServiceProvider;
 import org.eclipse.ptp.services.core.ProjectNotConfiguredException;
 import org.eclipse.ptp.services.core.ServiceModelManager;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteProcessBuilder;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
 
 /**
  * Supplies remote environment variables on a per-configuration basis. Right now it actually doesn't take into account service model
@@ -138,7 +138,7 @@
 
 				List<String> command = new LinkedList<String>();
 
-				IRemoteProcessBuilder processBuilder = remoteServices.getProcessBuilder(connection, command);
+				IRemoteProcessBuilder processBuilder = connection.getProcessBuilder(command);
 
 				remoteEnvMap = processBuilder.environment();
 
diff --git a/rdt/org.eclipse.ptp.rdt.managedbuilder.xlc.ui/src/org/eclipse/ptp/rdt/managedbuilder/xlc/ui/environment/RemoteProjectEnvironmentSupplier.java b/rdt/org.eclipse.ptp.rdt.managedbuilder.xlc.ui/src/org/eclipse/ptp/rdt/managedbuilder/xlc/ui/environment/RemoteProjectEnvironmentSupplier.java
index 0ab395c..e69e504 100644
--- a/rdt/org.eclipse.ptp.rdt.managedbuilder.xlc.ui/src/org/eclipse/ptp/rdt/managedbuilder/xlc/ui/environment/RemoteProjectEnvironmentSupplier.java
+++ b/rdt/org.eclipse.ptp.rdt.managedbuilder.xlc.ui/src/org/eclipse/ptp/rdt/managedbuilder/xlc/ui/environment/RemoteProjectEnvironmentSupplier.java
@@ -24,15 +24,15 @@
 import org.eclipse.ptp.rdt.core.RDTLog;
 import org.eclipse.ptp.rdt.core.serviceproviders.IRemoteExecutionServiceProvider;
 import org.eclipse.ptp.rdt.core.services.IRDTServiceConstants;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteProcessBuilder;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
 import org.eclipse.ptp.services.core.IService;
 import org.eclipse.ptp.services.core.IServiceConfiguration;
 import org.eclipse.ptp.services.core.IServiceProvider;
 import org.eclipse.ptp.services.core.ProjectNotConfiguredException;
 import org.eclipse.ptp.services.core.ServiceModelManager;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteProcessBuilder;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
 
 /**
  * Supplies environment variables from the remote system.
@@ -133,7 +133,7 @@
 
 				List<String> command = new LinkedList<String>();
 
-				IRemoteProcessBuilder processBuilder = remoteServices.getProcessBuilder(connection, command);
+				IRemoteProcessBuilder processBuilder = connection.getProcessBuilder(command);
 
 				if (processBuilder != null) {
 					remoteEnvMap = processBuilder.environment();
diff --git a/rdt/org.eclipse.ptp.rdt.managedbuilder.xlc.ui/src/org/eclipse/ptp/rdt/managedbuilder/xlc/ui/properties/RemoteDirectoryFieldEditor.java b/rdt/org.eclipse.ptp.rdt.managedbuilder.xlc.ui/src/org/eclipse/ptp/rdt/managedbuilder/xlc/ui/properties/RemoteDirectoryFieldEditor.java
index 4aaf5b6..a0628da 100644
--- a/rdt/org.eclipse.ptp.rdt.managedbuilder.xlc.ui/src/org/eclipse/ptp/rdt/managedbuilder/xlc/ui/properties/RemoteDirectoryFieldEditor.java
+++ b/rdt/org.eclipse.ptp.rdt.managedbuilder.xlc.ui/src/org/eclipse/ptp/rdt/managedbuilder/xlc/ui/properties/RemoteDirectoryFieldEditor.java
@@ -13,11 +13,11 @@
 import org.eclipse.core.filesystem.IFileStore;
 import org.eclipse.jface.preference.DirectoryFieldEditor;
 import org.eclipse.ptp.rdt.managedbuilder.xlc.ui.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.ui.IRemoteUIConstants;
-import org.eclipse.ptp.remote.ui.IRemoteUIFileManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIServices;
-import org.eclipse.ptp.remote.ui.RemoteUIServices;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.ui.IRemoteUIConstants;
+import org.eclipse.remote.ui.IRemoteUIFileManager;
+import org.eclipse.remote.ui.IRemoteUIServices;
+import org.eclipse.remote.ui.RemoteUIServices;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Shell;
 
@@ -46,7 +46,7 @@
 	 *            the parent of the field editor's control
 	 * @param IHost
 	 *            the remote file system connection host
-	 * @since 3.0
+	 * @since 4.0
 	 */
 	public RemoteDirectoryFieldEditor(String name, String labelText, Composite parent, IRemoteConnection connection) {
 		super(name, labelText, parent);
@@ -102,8 +102,7 @@
 			// reset currentRemoteFileStore first
 			fCurrentRemoteFileStore = null;
 			if (fRemoteConnection != null) {
-				fCurrentRemoteFileStore = fRemoteConnection.getRemoteServices().getFileManager(fRemoteConnection)
-						.getResource(dirName);
+				fCurrentRemoteFileStore = fRemoteConnection.getFileManager().getResource(dirName);
 			}
 		}
 
diff --git a/rdt/org.eclipse.ptp.rdt.managedbuilder.xlc.ui/src/org/eclipse/ptp/rdt/managedbuilder/xlc/ui/properties/RemoteXLCompilerPropertyPage.java b/rdt/org.eclipse.ptp.rdt.managedbuilder.xlc.ui/src/org/eclipse/ptp/rdt/managedbuilder/xlc/ui/properties/RemoteXLCompilerPropertyPage.java
index 9d9cc05..b4bf3f5 100644
--- a/rdt/org.eclipse.ptp.rdt.managedbuilder.xlc.ui/src/org/eclipse/ptp/rdt/managedbuilder/xlc/ui/properties/RemoteXLCompilerPropertyPage.java
+++ b/rdt/org.eclipse.ptp.rdt.managedbuilder.xlc.ui/src/org/eclipse/ptp/rdt/managedbuilder/xlc/ui/properties/RemoteXLCompilerPropertyPage.java
@@ -22,9 +22,9 @@
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.ptp.rdt.core.resources.RemoteNature;
 import org.eclipse.ptp.rdt.managedbuilder.xlc.ui.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.RemoteServices;
 import org.eclipse.swt.widgets.Composite;
 
 /**
@@ -54,7 +54,7 @@
 	 * Get the remote connection of a given project
 	 * 
 	 * @param project
-	 * @since 3.0
+	 * @since 4.0
 	 */
 	protected IRemoteConnection getRemoteConnection(IProject project) {
 		IRemoteServices provider = RemoteServices.getRemoteServices(project.getLocationURI());
diff --git a/rdt/org.eclipse.ptp.rdt.managedbuilder.xlupc.ui/META-INF/MANIFEST.MF b/rdt/org.eclipse.ptp.rdt.managedbuilder.xlupc.ui/META-INF/MANIFEST.MF
index 79396d5..d317e41 100644
--- a/rdt/org.eclipse.ptp.rdt.managedbuilder.xlupc.ui/META-INF/MANIFEST.MF
+++ b/rdt/org.eclipse.ptp.rdt.managedbuilder.xlupc.ui/META-INF/MANIFEST.MF
@@ -10,7 +10,7 @@
  org.eclipse.cdt.managedbuilder.xlupc.ui;bundle-version="1.1.0",
  org.eclipse.ptp.rdt.core;bundle-version="1.1.0",
  org.eclipse.core.resources;bundle-version="3.5.0",
- org.eclipse.ptp.remote.core;bundle-version="2.1.0",
+ org.eclipse.remote.core,
  org.eclipse.cdt.core;bundle-version="5.1.0",
  org.eclipse.ptp.services.core;bundle-version="1.0.0",
  org.eclipse.core.filesystem;bundle-version="1.2.0",
diff --git a/rdt/org.eclipse.ptp.rdt.managedbuilder.xlupc.ui/pom.xml b/rdt/org.eclipse.ptp.rdt.managedbuilder.xlupc.ui/pom.xml
index fbbbb06..7b0479f 100644
--- a/rdt/org.eclipse.ptp.rdt.managedbuilder.xlupc.ui/pom.xml
+++ b/rdt/org.eclipse.ptp.rdt.managedbuilder.xlupc.ui/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rdt/org.eclipse.ptp.rdt.server.dstore/.classpath b/rdt/org.eclipse.ptp.rdt.server.dstore/.classpath
index 64c5e31..ad32c83 100644
--- a/rdt/org.eclipse.ptp.rdt.server.dstore/.classpath
+++ b/rdt/org.eclipse.ptp.rdt.server.dstore/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="output" path="bin"/>
diff --git a/rdt/org.eclipse.ptp.rdt.server.dstore/.settings/org.eclipse.jdt.core.prefs b/rdt/org.eclipse.ptp.rdt.server.dstore/.settings/org.eclipse.jdt.core.prefs
index 416f4fb..8000cd6 100644
--- a/rdt/org.eclipse.ptp.rdt.server.dstore/.settings/org.eclipse.jdt.core.prefs
+++ b/rdt/org.eclipse.ptp.rdt.server.dstore/.settings/org.eclipse.jdt.core.prefs
@@ -1,11 +1,11 @@
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.compliance=1.6
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/rdt/org.eclipse.ptp.rdt.server.dstore/META-INF/MANIFEST.MF b/rdt/org.eclipse.ptp.rdt.server.dstore/META-INF/MANIFEST.MF
index cf3bd28..9f919ba 100644
--- a/rdt/org.eclipse.ptp.rdt.server.dstore/META-INF/MANIFEST.MF
+++ b/rdt/org.eclipse.ptp.rdt.server.dstore/META-INF/MANIFEST.MF
@@ -13,16 +13,17 @@
  org.eclipse.jface,
  org.eclipse.ui,
  org.eclipse.cdt.core,
- org.eclipse.ptp.remote.core,
+ org.eclipse.remote.core,
  org.eclipse.ptp.remote.server.core,
  org.eclipse.ptp.services.core,
  org.eclipse.ptp.rdt.core,
- org.eclipse.ptp.remote.ui,
+ org.eclipse.remote.ui,
  org.eclipse.ptp.services.ui,
  org.eclipse.ptp.rdt.ui,
  org.eclipse.rse.connectorservice.dstore,
  org.eclipse.rse.core,
- org.eclipse.text
+ org.eclipse.text,
+ org.eclipse.ui.trace
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.ptp.internal.rdt.server.dstore.core;x-internal:=true,
diff --git a/rdt/org.eclipse.ptp.rdt.server.dstore/plugin.xml b/rdt/org.eclipse.ptp.rdt.server.dstore/plugin.xml
index 1c8ce70..b7660c1 100644
--- a/rdt/org.eclipse.ptp.rdt.server.dstore/plugin.xml
+++ b/rdt/org.eclipse.ptp.rdt.server.dstore/plugin.xml
@@ -31,4 +31,15 @@
               id="org.eclipse.ptp.rdt.server.dstore.RemoteToolsCIndexServiceProvider">
         </providerContributor>
      </extension>
+        <extension
+              point="org.eclipse.ui.trace.traceComponents">
+           <component
+                 id="org.eclipse.ptp.rdt.server.dstore.component"
+                 label="RDT DStore Server">
+              <bundle
+                    consumed="true"
+                    name="org.eclipse.ptp.rdt.server.dstore">
+              </bundle>
+           </component>
+        </extension>
 </plugin>
diff --git a/rdt/org.eclipse.ptp.rdt.server.dstore/pom.xml b/rdt/org.eclipse.ptp.rdt.server.dstore/pom.xml
index ed07551..030fba9 100644
--- a/rdt/org.eclipse.ptp.rdt.server.dstore/pom.xml
+++ b/rdt/org.eclipse.ptp.rdt.server.dstore/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/core/Activator.java b/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/core/Activator.java
index 19ae7b7..e460af5 100644
--- a/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/core/Activator.java
+++ b/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/core/Activator.java
@@ -40,7 +40,7 @@
 	public void start(BundleContext context) throws Exception {
 		super.start(context);
 		plugin = this;
-		DebugUtil.configurePluginDebugOptions();
+		ServerDebugOptions.configure(context);
 	}
 
 	/*
diff --git a/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/core/DStoreServer.java b/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/core/DStoreServer.java
index 8a4b3bd..f533dc1 100644
--- a/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/core/DStoreServer.java
+++ b/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/core/DStoreServer.java
@@ -21,8 +21,8 @@
 import org.eclipse.jface.dialogs.ErrorDialog;
 import org.eclipse.ptp.internal.rdt.server.dstore.messages.Messages;
 import org.eclipse.ptp.rdt.ui.subsystems.StatusMonitor;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
 import org.eclipse.ptp.remote.server.core.AbstractRemoteServerRunner;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
 import org.eclipse.swt.widgets.Display;
 
 public class DStoreServer extends AbstractRemoteServerRunner {
@@ -60,6 +60,7 @@
 			} catch (IOException e) {
 				final IStatus status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, e.getMessage(), e);
 				Display.getDefault().asyncExec(new Runnable() {
+					@Override
 					public void run() {
 						ErrorDialog.openError(Display.getDefault().getActiveShell(), Messages.DStoreServer_serverError,
 								Messages.DStoreServer_unableToStart, status);
@@ -142,16 +143,13 @@
 			try {
 				port = getRemoteConnection().forwardLocalPort("localhost", fDStorePort, subMon.newChild(10)); //$NON-NLS-1$
 			} catch (RemoteConnectionException e) {
-				if (DebugUtil.SERVER_TRACING) {
-					System.err.println(Messages.DStoreServer_1 + e.getLocalizedMessage());
-				}
+				ServerDebugOptions
+						.trace(ServerDebugOptions.DEBUG_SERVER_TRACING, Messages.DStoreServer_1 + e.getLocalizedMessage());
 				return false;
 			}
 			getClientConnection().setHost("localhost"); //$NON-NLS-1$
 			getClientConnection().setPort(Integer.toString(port));
-			if (DebugUtil.SERVER_TRACING) {
-				System.out.println(Messages.DStoreServer_2);
-			}
+			ServerDebugOptions.trace(ServerDebugOptions.DEBUG_SERVER_TRACING, Messages.DStoreServer_2);
 			ConnectionStatus status = getClientConnection().connect(null, 0);
 			if (status.isConnected()) {
 				DataStore dataStore = getClientConnection().getDataStore();
@@ -165,9 +163,7 @@
 					// Data store will be disconnected if error occurs
 					return false;
 				}
-				if (DebugUtil.SERVER_TRACING) {
-					System.out.println(Messages.DStoreServer_3);
-				}
+				ServerDebugOptions.trace(ServerDebugOptions.DEBUG_SERVER_TRACING, Messages.DStoreServer_3);
 				return true;
 			}
 			return false;
@@ -190,9 +186,7 @@
 		case WAITING_FOR_SUCCESS_STRING:
 			if (output.startsWith(SUCCESS_STRING)) {
 				fState = DStoreState.WAITING_FOR_PORT;
-				if (DebugUtil.SERVER_TRACING) {
-					System.out.println(Messages.DStoreServer_4);
-				}
+				ServerDebugOptions.trace(ServerDebugOptions.DEBUG_SERVER_TRACING, Messages.DStoreServer_4);
 			}
 			break;
 
@@ -200,9 +194,7 @@
 			if (output.matches("^[0-9]+$")) { //$NON-NLS-1$
 				fDStorePort = Integer.parseInt(output);
 				fState = DStoreState.COMPLETED;
-				if (DebugUtil.SERVER_TRACING) {
-					System.out.println(Messages.DStoreServer_5 + fDStorePort);
-				}
+				ServerDebugOptions.trace(ServerDebugOptions.DEBUG_SERVER_TRACING, Messages.DStoreServer_5 + fDStorePort);
 			}
 			break;
 
diff --git a/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/core/DebugUtil.java b/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/core/DebugUtil.java
deleted file mode 100644
index c92642c..0000000
--- a/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/core/DebugUtil.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 IBM Corporation.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.ptp.internal.rdt.server.dstore.core;
-
-import org.eclipse.core.runtime.Platform;
-
-public class DebugUtil {
-	public static boolean SERVER_TRACING = false;
-
-	private static final String SERVER_TRACING_OPTION = "org.eclipse.ptp.rdt.server.dstore/debug/tracing"; //$NON-NLS-1$
-
-	public static void configurePluginDebugOptions() {
-		if (Activator.getDefault().isDebugging()) {
-			String option = Platform.getDebugOption(SERVER_TRACING_OPTION);
-			if (option != null) {
-				SERVER_TRACING = option.equalsIgnoreCase("true"); //$NON-NLS-1$
-			}
-		}
-	}
-}
diff --git a/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/core/RemoteToolsCIndexServiceProvider.java b/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/core/RemoteToolsCIndexServiceProvider.java
index 6492a3a..dded6d8 100644
--- a/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/core/RemoteToolsCIndexServiceProvider.java
+++ b/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/core/RemoteToolsCIndexServiceProvider.java
@@ -36,12 +36,12 @@
 import org.eclipse.ptp.internal.rdt.ui.search.ISearchService;
 import org.eclipse.ptp.internal.rdt.ui.search.RemoteSearchService;
 import org.eclipse.ptp.rdt.ui.serviceproviders.IRemoteToolsIndexServiceProvider;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
 import org.eclipse.ptp.services.core.IServiceProvider;
 import org.eclipse.ptp.services.core.IServiceProviderWorkingCopy;
 import org.eclipse.ptp.services.core.ServiceProvider;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.RemoteServices;
 
 /**
  * @since 2.0
diff --git a/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/core/RemoteToolsCIndexSubsystem.java b/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/core/RemoteToolsCIndexSubsystem.java
index fc1c5b3..7dc2638 100644
--- a/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/core/RemoteToolsCIndexSubsystem.java
+++ b/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/core/RemoteToolsCIndexSubsystem.java
@@ -1117,7 +1117,7 @@
 	}
 
 	protected URI convertRemotePathToURI(String path) throws URISyntaxException {
-		return fProvider.getConnection().getRemoteServices().getFileManager(fProvider.getConnection()).toURI(path);
+		return fProvider.getConnection().getFileManager().toURI(path);
 	}
 
 	protected String convertURIToRemotePath(URI locationURI) {
diff --git a/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/core/ServerDebugOptions.java b/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/core/ServerDebugOptions.java
new file mode 100644
index 0000000..18697c4
--- /dev/null
+++ b/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/core/ServerDebugOptions.java
@@ -0,0 +1,106 @@
+/*******************************************************************************

+ * Copyright (c) 2012 Sage Electronic Engineering, LLC. and others.

+ * All rights reserved. This program and the accompanying materials

+ * are made available under the terms of the Eclipse Public License v1.0

+ * which accompanies this distribution, and is available at

+ * http://www.eclipse.org/legal/epl-v10.html

+ *

+ * Contributors:

+ *    Jason Litton (Sage Electronic Engineering, LLC) - initial API and implementation

+ *    Greg Watson (IBM) - adapted for remote core

+ *******************************************************************************/

+

+package org.eclipse.ptp.internal.rdt.server.dstore.core;

+

+import java.util.Hashtable;

+

+import org.eclipse.osgi.service.debug.DebugOptions;

+import org.eclipse.osgi.service.debug.DebugOptionsListener;

+import org.eclipse.osgi.service.debug.DebugTrace;

+import org.eclipse.osgi.util.NLS;

+import org.osgi.framework.BundleContext;

+

+public class ServerDebugOptions implements DebugOptionsListener {

+	public static final String DEBUG_SERVER_TRACING = "/debug/tracing"; //$NON-NLS-1$

+

+	private static DebugTrace fDebugTrace;

+	private static DebugOptions fDebugOptions;

+	private static ServerDebugOptions fServerDebugOptions;

+

+	public static void configure(BundleContext context) {

+		if (fServerDebugOptions == null) {

+			fServerDebugOptions = new ServerDebugOptions(context);

+		}

+	}

+

+	private ServerDebugOptions(BundleContext context) {

+		Hashtable<String, String> props = new Hashtable<String, String>(2);

+		props.put(DebugOptions.LISTENER_SYMBOLICNAME, Activator.PLUGIN_ID);

+		context.registerService(DebugOptionsListener.class.getName(), this, props);

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see org.eclipse.osgi.service.debug.DebugOptionsListener#optionsChanged(org.eclipse.osgi.service.debug.DebugOptions)

+	 */

+	@Override

+	public void optionsChanged(DebugOptions options) {

+		fDebugOptions = options;

+		fDebugTrace = options.newDebugTrace(Activator.PLUGIN_ID);

+	}

+

+	public static boolean isDebugging() {

+		return Activator.getDefault().isDebugging();

+	}

+

+	public static boolean isDebugging(String option) {

+		if (fDebugOptions == null) {

+			return false;

+		}

+		return fDebugOptions.getBooleanOption(Activator.PLUGIN_ID + option, false);

+	}

+

+	public static void setDebugging(String option, boolean value) {

+		if (fDebugOptions != null) {

+			if (value) {

+				fDebugOptions.setDebugEnabled(true);

+			}

+			fDebugOptions.setOption(option, Boolean.toString(value));

+		}

+	}

+

+	/**

+	 * Prints the given message to System.out and to the OSGi tracing (if enabled)

+	 * 

+	 * @param message

+	 *            the message or <code>null</code>

+	 */

+	public static void trace(String message) {

+		trace(null, message);

+	}

+

+	/**

+	 * Prints the given message to System.out and to the OSGi tracing (if enabled)

+	 * 

+	 * @param option

+	 *            the option to determine if tracing is displayed

+	 * @param message

+	 *            the message or <code>null</code>

+	 * @param arguments

+	 *            optional arguments for the message or <code>null</code>

+	 */

+	public static void trace(String option, String message, String... arguments) {

+		String traceMsg = message;

+		if (arguments.length > 0) {

+			traceMsg = NLS.bind(message, arguments);

+		}

+		if ((option != null && isDebugging(option)) || isDebugging()) {

+			System.out.println(traceMsg);

+			if (fDebugTrace != null) {

+				fDebugTrace.trace(option, traceMsg, null);

+			}

+		}

+	}

+

+}

diff --git a/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/ui/DStoreIndexWidget.java b/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/ui/DStoreIndexWidget.java
index 2d7e667..b4d96e6 100644
--- a/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/ui/DStoreIndexWidget.java
+++ b/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/ui/DStoreIndexWidget.java
@@ -10,8 +10,8 @@
 import org.eclipse.core.runtime.ListenerList;
 import org.eclipse.ptp.internal.rdt.server.dstore.messages.Messages;
 import org.eclipse.ptp.internal.rdt.server.dstore.ui.DStoreServerWidget.FieldModifier;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.ui.widgets.RemoteDirectoryWidget;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.ui.widgets.RemoteDirectoryWidget;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
@@ -32,7 +32,7 @@
 		setLayoutData(new GridData(GridData.FILL_BOTH));
 
 		fDirectoryWidget = new RemoteDirectoryWidget(this, SWT.NONE, Messages.DStoreIndexWidget_0, fDefaultPath);
-		fDirectoryWidget.setBrowseMessage(Messages.DStoreIndexWidget_1); 
+		fDirectoryWidget.setBrowseMessage(Messages.DStoreIndexWidget_1);
 		GridData data = new GridData(SWT.FILL, SWT.FILL, true, false);
 		data.horizontalSpan = 3;
 		fDirectoryWidget.setLayoutData(data); // set layout to grab horizontal
diff --git a/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/ui/DStoreServerWidget.java b/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/ui/DStoreServerWidget.java
index 6ef193d..ee8fc38 100644
--- a/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/ui/DStoreServerWidget.java
+++ b/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/ui/DStoreServerWidget.java
@@ -8,7 +8,7 @@
 package org.eclipse.ptp.internal.rdt.server.dstore.ui;
 
 import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnection;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
diff --git a/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/ui/RemoteToolsCIndexServiceProviderContributer.java b/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/ui/RemoteToolsCIndexServiceProviderContributer.java
index fd7d9d4..bbd926d 100644
--- a/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/ui/RemoteToolsCIndexServiceProviderContributer.java
+++ b/rdt/org.eclipse.ptp.rdt.server.dstore/src/org/eclipse/ptp/internal/rdt/server/dstore/ui/RemoteToolsCIndexServiceProviderContributer.java
@@ -18,11 +18,11 @@
 import org.eclipse.ptp.internal.rdt.server.dstore.core.RemoteToolsCIndexServiceProvider;
 import org.eclipse.ptp.internal.rdt.server.dstore.messages.Messages;
 import org.eclipse.ptp.internal.rdt.server.dstore.ui.DStoreServerWidget.FieldModifier;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.ui.widgets.RemoteConnectionWidget;
 import org.eclipse.ptp.services.core.IServiceProvider;
 import org.eclipse.ptp.services.core.IServiceProviderWorkingCopy;
 import org.eclipse.ptp.services.ui.IServiceProviderContributor;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.ui.widgets.RemoteConnectionWidget;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
@@ -49,6 +49,7 @@
 	/**
 	 * @since 2.0
 	 */
+	@Override
 	public void configureServiceProvider(IServiceProviderWorkingCopy sp, final Composite container) {
 
 		fProviderWorkingCopy = null;
@@ -63,7 +64,7 @@
 		container.setLayout(new GridLayout(1, false));
 
 		final RemoteConnectionWidget remoteWidget = new RemoteConnectionWidget(container, SWT.NONE,
-				Messages.RemoteToolsCIndexServiceProviderContributer_0, RemoteConnectionWidget.FLAG_FORCE_PROVIDER_SELECTION, null);
+				Messages.RemoteToolsCIndexServiceProviderContributer_0, RemoteConnectionWidget.FLAG_FORCE_PROVIDER_SELECTION);
 		remoteWidget.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
 		remoteWidget.addSelectionListener(new SelectionAdapter() {
 			@Override
@@ -97,6 +98,7 @@
 		}
 
 		fServerWidget.addModifyListener(new ModifyListener() {
+			@Override
 			public void modifyText(ModifyEvent e) {
 				if (e.data == FieldModifier.VALUE_INDEX_LOCATION) {
 					fConfigPath = fServerWidget.getIndexLocation();
@@ -120,6 +122,7 @@
 	 * .eclipse.ptp.services.core.IServiceProvider,
 	 * org.eclipse.jface.wizard.IWizardPage)
 	 */
+	@Override
 	public IWizard getWizard(IServiceProvider provider, IWizardPage page) {
 		// TODO Auto-generated method stub
 		return null;
@@ -133,6 +136,7 @@
 	 * (org.eclipse.jface.wizard.IWizard,
 	 * org.eclipse.ptp.services.core.IServiceProvider)
 	 */
+	@Override
 	public WizardPage[] getWizardPages(IWizard wizard, IServiceProvider provider) {
 		// TODO Auto-generated method stub
 		return null;
diff --git a/rdt/org.eclipse.ptp.rdt.sync.cdt.core/META-INF/MANIFEST.MF b/rdt/org.eclipse.ptp.rdt.sync.cdt.core/META-INF/MANIFEST.MF
index 7a72abc..ad3caf0 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.cdt.core/META-INF/MANIFEST.MF
+++ b/rdt/org.eclipse.ptp.rdt.sync.cdt.core/META-INF/MANIFEST.MF
@@ -10,7 +10,7 @@
  org.eclipse.core.resources,
  org.eclipse.cdt.managedbuilder.core,
  org.eclipse.ptp.ems.core,
- org.eclipse.ptp.remote.core,
+ org.eclipse.remote.core,
  org.eclipse.ptp.rdt.sync.core
 Export-Package: org.eclipse.ptp.internal.rdt.sync.cdt.core;
   x-friends:="org.eclipse.ptp.rdt.sync.ui,
diff --git a/rdt/org.eclipse.ptp.rdt.sync.cdt.core/pom.xml b/rdt/org.eclipse.ptp.rdt.sync.cdt.core/pom.xml
index b23006f..57f5341 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.cdt.core/pom.xml
+++ b/rdt/org.eclipse.ptp.rdt.sync.cdt.core/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rdt/org.eclipse.ptp.rdt.sync.cdt.core/src/org/eclipse/ptp/internal/rdt/sync/cdt/core/SyncGCCBuildCommandParser.java b/rdt/org.eclipse.ptp.rdt.sync.cdt.core/src/org/eclipse/ptp/internal/rdt/sync/cdt/core/SyncGCCBuildCommandParser.java
index e6aaa12..a622644 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.cdt.core/src/org/eclipse/ptp/internal/rdt/sync/cdt/core/SyncGCCBuildCommandParser.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.cdt.core/src/org/eclipse/ptp/internal/rdt/sync/cdt/core/SyncGCCBuildCommandParser.java
@@ -23,7 +23,7 @@
 import org.eclipse.ptp.rdt.sync.core.SyncConfig;
 import org.eclipse.ptp.rdt.sync.core.SyncConfigManager;
 import org.eclipse.ptp.rdt.sync.core.exceptions.MissingConnectionException;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnection;
 
 /**
  * Language settings provider to detect compiler settings from the build output of the GCC compiler, modified to work with
diff --git a/rdt/org.eclipse.ptp.rdt.sync.cdt.core/src/org/eclipse/ptp/internal/rdt/sync/cdt/core/SyncGCCBuiltinSpecsDetector.java b/rdt/org.eclipse.ptp.rdt.sync.cdt.core/src/org/eclipse/ptp/internal/rdt/sync/cdt/core/SyncGCCBuiltinSpecsDetector.java
index 20dad81..f24892e 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.cdt.core/src/org/eclipse/ptp/internal/rdt/sync/cdt/core/SyncGCCBuiltinSpecsDetector.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.cdt.core/src/org/eclipse/ptp/internal/rdt/sync/cdt/core/SyncGCCBuiltinSpecsDetector.java
@@ -61,8 +61,8 @@
 import org.eclipse.ptp.rdt.sync.core.SyncConfig;
 import org.eclipse.ptp.rdt.sync.core.SyncConfigManager;
 import org.eclipse.ptp.rdt.sync.core.exceptions.MissingConnectionException;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteFileManager;
 
 /**
  * Language settings provider to detect built-in compiler settings for GCC compiler, modified to work with synchronized projects.
@@ -84,7 +84,7 @@
 	private static final int TICKS_OUTPUT_PARSING = 1 * MONITOR_SCALE;
 	private static final int TICKS_EXECUTE_COMMAND = 1 * MONITOR_SCALE;
 
-	private AtomicBoolean isBeingExecuted = new AtomicBoolean(false);
+	private final AtomicBoolean isBeingExecuted = new AtomicBoolean(false);
 
 	// Indicate whether the spec file has been created or verified to exist. This may be false on project startup before project is
 	// fully initialized or become false if there are problems connecting to and running commands on the remote machine. Checking
@@ -118,9 +118,10 @@
 	 * A copy of: {@link org.eclipse.cdt.managedbuilder.language.settings.providers.AbstractBuiltinSpecsDetector#runForLanguage()}
 	 * modified to use the sync command launcher and to not run if spec file is null (see code comments). Note that this method is
 	 * called by "runForLanguage," it does not override it. Thus, all of the setup for running is done twice. Specifically, a
-	 * BuildRunnerHelper is built twice. Ideally, CDT would provide an extension point to change the command launcher, as it does for
+	 * BuildRunnerHelper is built twice. Ideally, CDT would provide an extension point to change the command launcher, as it does
+	 * for
 	 * builds.
-	 *
+	 * 
 	 * @return ICommandLauncher status of run
 	 */
 	@Override
@@ -294,7 +295,7 @@
 			return fileLocation.toString();
 		}
 
-		final IRemoteFileManager fileManager = conn.getRemoteServices().getFileManager(conn);
+		final IRemoteFileManager fileManager = conn.getFileManager();
 		final IFileStore fileStore = fileManager.getResource(fileLocation.toString());
 		final IFileInfo fileInfo = fileStore.fetchInfo();
 		if (!fileInfo.exists()) {
@@ -370,4 +371,4 @@
 		}
 		return null;
 	}
-}
\ No newline at end of file
+}
diff --git a/rdt/org.eclipse.ptp.rdt.sync.cdt.core/src/org/eclipse/ptp/internal/rdt/sync/cdt/core/SyncUNCPathConverter.java b/rdt/org.eclipse.ptp.rdt.sync.cdt.core/src/org/eclipse/ptp/internal/rdt/sync/cdt/core/SyncUNCPathConverter.java
index b2daa3e..8f75ea2 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.cdt.core/src/org/eclipse/ptp/internal/rdt/sync/cdt/core/SyncUNCPathConverter.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.cdt.core/src/org/eclipse/ptp/internal/rdt/sync/cdt/core/SyncUNCPathConverter.java
@@ -17,7 +17,7 @@
 import org.eclipse.cdt.utils.UNCPathConverter;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
-import org.eclipse.ptp.remote.core.RemoteServicesUtils;
+import org.eclipse.remote.core.RemoteServicesUtils;
 
 public class SyncUNCPathConverter extends UNCPathConverter {
 	private static Map<IPath, URI> fConnMap = new HashMap<IPath, URI>();
diff --git a/rdt/org.eclipse.ptp.rdt.sync.cdt.core/src/org/eclipse/ptp/internal/rdt/sync/cdt/core/remotemake/RemoteProcessClosure.java b/rdt/org.eclipse.ptp.rdt.sync.cdt.core/src/org/eclipse/ptp/internal/rdt/sync/cdt/core/remotemake/RemoteProcessClosure.java
index f104065..1b7d4b9 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.cdt.core/src/org/eclipse/ptp/internal/rdt/sync/cdt/core/remotemake/RemoteProcessClosure.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.cdt.core/src/org/eclipse/ptp/internal/rdt/sync/cdt/core/remotemake/RemoteProcessClosure.java
@@ -19,7 +19,7 @@
 import java.text.MessageFormat;
 
 import org.eclipse.ptp.internal.rdt.sync.cdt.core.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteProcess;
+import org.eclipse.remote.core.IRemoteProcess;
 
 /**
  * @author crecoskie
@@ -100,7 +100,8 @@
 				} finally {
 					try {
 
-						if (!fIsErrorReader && ((lastLine == null) || (!lastLine.contains(Messages.RemoteProcessClosure_exit_code)))) {
+						if (!fIsErrorReader
+								&& ((lastLine == null) || (!lastLine.contains(Messages.RemoteProcessClosure_exit_code)))) {
 							// make sure the Spawner has finished up and that the exit code is retrievable
 							int exit_code = 0;
 							try {
diff --git a/rdt/org.eclipse.ptp.rdt.sync.cdt.core/src/org/eclipse/ptp/internal/rdt/sync/cdt/core/remotemake/SyncCommandLauncher.java b/rdt/org.eclipse.ptp.rdt.sync.cdt.core/src/org/eclipse/ptp/internal/rdt/sync/cdt/core/remotemake/SyncCommandLauncher.java
index 3264b48..f7dd928 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.cdt.core/src/org/eclipse/ptp/internal/rdt/sync/cdt/core/remotemake/SyncCommandLauncher.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.cdt.core/src/org/eclipse/ptp/internal/rdt/sync/cdt/core/remotemake/SyncCommandLauncher.java
@@ -44,12 +44,12 @@
 import org.eclipse.ptp.rdt.sync.core.SyncFlag;
 import org.eclipse.ptp.rdt.sync.core.SyncManager;
 import org.eclipse.ptp.rdt.sync.core.exceptions.MissingConnectionException;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.core.IRemoteProcess;
-import org.eclipse.ptp.remote.core.IRemoteProcessBuilder;
-import org.eclipse.ptp.remote.core.RemoteProcessAdapter;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteProcess;
+import org.eclipse.remote.core.IRemoteProcessBuilder;
+import org.eclipse.remote.core.RemoteProcessAdapter;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
 
 // TODO (Jeff): Remove/replace NON_ESCAPED_ASCII_CHARS, static initializer, and escape(String) after Bug 371691 is fixed
 public class SyncCommandLauncher implements ICommandLauncher {
@@ -96,6 +96,7 @@
 		}
 		return sb.toString();
 	}
+
 	protected IProject fProject;
 	protected Process fProcess;
 	protected IRemoteProcess fRemoteProcess;
@@ -229,7 +230,7 @@
 		// Set process's command and environment
 		List<String> command = constructCommand(commandPath, args, connection, progress.newChild(10));
 
-		IRemoteProcessBuilder processBuilder = connection.getRemoteServices().getProcessBuilder(connection, command);
+		IRemoteProcessBuilder processBuilder = connection.getProcessBuilder(command);
 
 		remoteEnvMap = processBuilder.environment();
 
@@ -244,7 +245,7 @@
 		}
 
 		// set the directory in which to run the command
-		IRemoteFileManager fileManager = connection.getRemoteServices().getFileManager(connection);
+		IRemoteFileManager fileManager = connection.getFileManager();
 		if (changeToDirectory != null && fileManager != null) {
 			processBuilder.directory(fileManager.getResource(changeToDirectory.toString()));
 		}
@@ -355,6 +356,7 @@
 
 	/**
 	 * Set whether launcher should sync project after executing. The default behavior is to sync.
+	 * 
 	 * @param shouldSync
 	 */
 	public void setSyncAfterRun(boolean shouldSync) {
@@ -363,6 +365,7 @@
 
 	/**
 	 * Set whether launcher should sync project before executing. The default behavior is to sync.
+	 * 
 	 * @param shouldSync
 	 */
 	public void setSyncBeforeRun(boolean shouldSync) {
diff --git a/rdt/org.eclipse.ptp.rdt.sync.cdt.ui/.options b/rdt/org.eclipse.ptp.rdt.sync.cdt.ui/.options
deleted file mode 100644
index 47855c3..0000000
--- a/rdt/org.eclipse.ptp.rdt.sync.cdt.ui/.options
+++ /dev/null
@@ -1,7 +0,0 @@
-# Debugging options for the org.eclipse.ptp.rdt.sync.cdt.ui
-
-# Also displays overall startup time.
-org.eclipse.ptp.rdt.sync.cdt.ui/debug=false
-
-# Enables dstore server tracing
-org.eclipse.ptp.rdt.sync.cdt.ui/debug/dstore/tracing=false
diff --git a/rdt/org.eclipse.ptp.rdt.sync.cdt.ui/META-INF/MANIFEST.MF b/rdt/org.eclipse.ptp.rdt.sync.cdt.ui/META-INF/MANIFEST.MF
index 76d7fed..3e9d738 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.cdt.ui/META-INF/MANIFEST.MF
+++ b/rdt/org.eclipse.ptp.rdt.sync.cdt.ui/META-INF/MANIFEST.MF
@@ -12,8 +12,8 @@
  org.eclipse.core.resources,
  org.eclipse.cdt.managedbuilder.core,
  org.eclipse.cdt.managedbuilder.ui,
- org.eclipse.ptp.remote.core,
- org.eclipse.ptp.remote.ui,
+ org.eclipse.remote.core,
+ org.eclipse.remote.ui,
  org.eclipse.ptp.rdt.sync.ui,
  org.eclipse.ptp.rdt.sync.core,
  org.eclipse.ptp.ems.core,
diff --git a/rdt/org.eclipse.ptp.rdt.sync.cdt.ui/pom.xml b/rdt/org.eclipse.ptp.rdt.sync.cdt.ui/pom.xml
index e82a91e..df08b96 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.cdt.ui/pom.xml
+++ b/rdt/org.eclipse.ptp.rdt.sync.cdt.ui/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rdt/org.eclipse.ptp.rdt.sync.cdt.ui/src/org/eclipse/ptp/internal/rdt/sync/cdt/ui/properties/SynchronizeProperties.java b/rdt/org.eclipse.ptp.rdt.sync.cdt.ui/src/org/eclipse/ptp/internal/rdt/sync/cdt/ui/properties/SynchronizeProperties.java
index 5ceca1c..ac61ea0 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.cdt.ui/src/org/eclipse/ptp/internal/rdt/sync/cdt/ui/properties/SynchronizeProperties.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.cdt.ui/src/org/eclipse/ptp/internal/rdt/sync/cdt/ui/properties/SynchronizeProperties.java
@@ -265,6 +265,7 @@
 		if ((fUserDefinedContent != null) && !fUserDefinedContent.isDisposed()) {
 			cacheConfig();
 		}
+
 		Set<IProject> projectsToUpdate = new HashSet<IProject>();
 		/*
 		 * Iterate through all the potentially changed configurations and update the build configuration information
@@ -370,4 +371,4 @@
 			Activator.log(e);
 		}
 	}
-}
\ No newline at end of file
+}
diff --git a/rdt/org.eclipse.ptp.rdt.sync.cdt.ui/src/org/eclipse/ptp/internal/rdt/sync/cdt/ui/wizards/NewRemoteSyncProjectWizardOperation.java b/rdt/org.eclipse.ptp.rdt.sync.cdt.ui/src/org/eclipse/ptp/internal/rdt/sync/cdt/ui/wizards/NewRemoteSyncProjectWizardOperation.java
index 870cd54..542e719 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.cdt.ui/src/org/eclipse/ptp/internal/rdt/sync/cdt/ui/wizards/NewRemoteSyncProjectWizardOperation.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.cdt.ui/src/org/eclipse/ptp/internal/rdt/sync/cdt/ui/wizards/NewRemoteSyncProjectWizardOperation.java
@@ -95,8 +95,8 @@
 		// Add elements for a sync project
 		if (!isSyncProject(project)) {
 			try {
-				SyncManager.makeSyncProject(project, participant.getSyncConfigName(), participant.getProvider(project),
-						customFileFilter);
+				SyncManager.makeSyncProject(project, participant.getSyncConfigName(), participant.getServiceId(),
+						participant.getConnection(), participant.getLocation(), customFileFilter);
 			} catch (CoreException e) {
 				Activator.log(e);
 				return;
@@ -139,7 +139,7 @@
 		if (customFileFilter != null) {
 			try {
 				SyncManager.saveFileFilter(project, customFileFilter);
-			} catch (IOException e) {
+			} catch (CoreException e) {
 				RDTSyncCorePlugin.log(e);
 			}
 		}
diff --git a/rdt/org.eclipse.ptp.rdt.sync.core.tests/META-INF/MANIFEST.MF b/rdt/org.eclipse.ptp.rdt.sync.core.tests/META-INF/MANIFEST.MF
index 2223d70..29ac17b 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.core.tests/META-INF/MANIFEST.MF
+++ b/rdt/org.eclipse.ptp.rdt.sync.core.tests/META-INF/MANIFEST.MF
@@ -3,12 +3,11 @@
 Bundle-Name: Tests
 Bundle-SymbolicName: org.eclipse.ptp.rdt.sync.core.tests
 Bundle-Version: 1.0.0.qualifier
-Require-Bundle: org.eclipse.ptp.remote.core;bundle-version="5.0.0",
- org.eclipse.core.runtime;bundle-version="3.7.0",
+Require-Bundle: org.eclipse.remote.core,
+ org.eclipse.core.runtime,
  org.eclipse.core.filesystem,
- org.eclipse.core.resources;bundle-version="3.8.0",
+ org.eclipse.core.resources,
  org.junit,
- org.eclipse.ptp.rdt.sync.core;bundle-version="2.0.0",
- org.eclipse.ptp.remotetools.environment.generichost;bundle-version="1.4.0"
+ org.eclipse.ptp.rdt.sync.core
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Import-Package: org.eclipse.ptp.internal.rdt.sync.git.core
diff --git a/rdt/org.eclipse.ptp.rdt.sync.core.tests/src/org/eclipse/ptp/rdt/sync/core/tests/BasicGitSyncTests.java b/rdt/org.eclipse.ptp.rdt.sync.core.tests/src/org/eclipse/ptp/rdt/sync/core/tests/BasicGitSyncTests.java
index 52cba00..b83e1ce 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.core.tests/src/org/eclipse/ptp/rdt/sync/core/tests/BasicGitSyncTests.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.core.tests/src/org/eclipse/ptp/rdt/sync/core/tests/BasicGitSyncTests.java
@@ -32,7 +32,7 @@
 import org.eclipse.ptp.internal.rdt.sync.git.core.CommandRunner;
 import org.eclipse.ptp.internal.rdt.sync.git.core.CommandRunner.CommandResults;
 import org.eclipse.ptp.rdt.sync.core.exceptions.RemoteSyncException;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/rdt/org.eclipse.ptp.rdt.sync.core.tests/src/org/eclipse/ptp/rdt/sync/core/tests/TemporaryGitRemoteSyncConnection.java b/rdt/org.eclipse.ptp.rdt.sync.core.tests/src/org/eclipse/ptp/rdt/sync/core/tests/TemporaryGitRemoteSyncConnection.java
index 4f259cd..94cddd0 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.core.tests/src/org/eclipse/ptp/rdt/sync/core/tests/TemporaryGitRemoteSyncConnection.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.core.tests/src/org/eclipse/ptp/rdt/sync/core/tests/TemporaryGitRemoteSyncConnection.java
@@ -21,14 +21,12 @@
 import org.eclipse.ptp.rdt.sync.core.PreferenceSyncFileFilterStorage;
 import org.eclipse.ptp.rdt.sync.core.SyncConfig;
 import org.eclipse.ptp.rdt.sync.core.SyncConfigManager;
-import org.eclipse.ptp.rdt.sync.core.AbstractSyncFileFilter;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.core.IRemotePreferenceConstants;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
-import org.eclipse.ptp.remotetools.environment.generichost.core.ConfigFactory;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnectionManager;
+import org.eclipse.remote.core.IRemoteConnectionWorkingCopy;
+import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.RemoteServices;
 import org.junit.rules.ExternalResource;
 import org.junit.rules.TemporaryFolder;
 
@@ -80,7 +78,7 @@
 		/* setup remote connection */
 		IRemoteServices fRemoteServices;
 
-		fRemoteServices = RemoteServices.getRemoteServices(IRemotePreferenceConstants.REMOTE_TOOLS_REMOTE_SERVICES_ID);
+		fRemoteServices = RemoteServices.getRemoteServices("org.eclipse.remote.JSch");
 		assertNotNull(fRemoteServices);
 
 		connMgr = fRemoteServices.getConnectionManager();
@@ -88,24 +86,18 @@
 
 		// TODO: understand why it is causes problem when all connections are called the same. Should be fine because
 		// connections are deleted. There seems to be a problem in RemoteTools with creating a new connection with the same name
-		fRemoteConnection = connMgr.newConnection("test_connection" + n); //$NON-NLS-1$  
-
+		IRemoteConnectionWorkingCopy wc = connMgr.newConnection("test_connection" + n); //$NON-NLS-1$  
+		wc.setAddress(test.host);
+		wc.setUsername(test.username);
+		wc.setPassword(test.password);
+		fRemoteConnection = wc.save();
 		assertNotNull(fRemoteConnection);
-		fRemoteConnection.setAddress(test.host);
-		fRemoteConnection.setUsername(test.username);
-		if (test.privatekey == null) {
-			fRemoteConnection.setPassword(test.password);
-		} else {
-			fRemoteConnection.setAttribute(ConfigFactory.ATTR_KEY_PATH, test.privatekey);
-			fRemoteConnection.setAttribute(ConfigFactory.ATTR_KEY_PASSPHRASE, test.password);
-			fRemoteConnection.setAttribute(ConfigFactory.ATTR_IS_PASSWORD_AUTH, Boolean.toString(false));
-		}
 
 		if (!fRemoteConnection.isOpen()) {
 			fRemoteConnection.open(null);
 		}
 
-		fileManager = fRemoteConnection.getRemoteServices().getFileManager(fRemoteConnection);
+		fileManager = fRemoteConnection.getFileManager();
 
 		/* local folder */
 		localFolder = new TemporaryFolder();
diff --git a/rdt/org.eclipse.ptp.rdt.sync.core/META-INF/MANIFEST.MF b/rdt/org.eclipse.ptp.rdt.sync.core/META-INF/MANIFEST.MF
index 3803ce5..3a33d02 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.core/META-INF/MANIFEST.MF
+++ b/rdt/org.eclipse.ptp.rdt.sync.core/META-INF/MANIFEST.MF
@@ -2,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name.0
 Bundle-SymbolicName: org.eclipse.ptp.rdt.sync.core;singleton:=true
-Bundle-Version: 3.0.0.qualifier
+Bundle-Version: 4.0.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.core.filesystem,
  org.eclipse.core.resources,
- org.eclipse.ptp.remote.core,
+ org.eclipse.remote.core,
  org.eclipse.ui
 Export-Package: org.eclipse.ptp.internal.rdt.sync.core;x-friends:="org.eclipse.ptp.rdt.sync.ui",
  org.eclipse.ptp.internal.rdt.sync.core.messages;x-internal:=true,
diff --git a/rdt/org.eclipse.ptp.rdt.sync.core/plugin.xml b/rdt/org.eclipse.ptp.rdt.sync.core/plugin.xml
index 75d691a..70283cd 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.core/plugin.xml
+++ b/rdt/org.eclipse.ptp.rdt.sync.core/plugin.xml
@@ -13,7 +13,7 @@
       </runtime>
    </extension>
    <extension
-         point="org.eclipse.ptp.remote.core.remoteResources">
+         point="org.eclipse.remote.core.remoteResources">
       <remoteResource
             class="org.eclipse.ptp.internal.rdt.sync.core.SynchronizedResource"
             nature="org.eclipse.ptp.rdt.sync.core.remoteSyncNature">
diff --git a/rdt/org.eclipse.ptp.rdt.sync.core/pom.xml b/rdt/org.eclipse.ptp.rdt.sync.core/pom.xml
index a857dda..e058e6c 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.core/pom.xml
+++ b/rdt/org.eclipse.ptp.rdt.sync.core/pom.xml
@@ -6,11 +6,11 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.rdt.sync.core</artifactId>
-  <version>3.0.0-SNAPSHOT</version>
+  <version>4.0.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/internal/rdt/sync/core/SyncRunner.java b/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/internal/rdt/sync/core/SyncRunner.java
deleted file mode 100644
index f09a968..0000000
--- a/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/internal/rdt/sync/core/SyncRunner.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012 Oak Ridge National Laboratory and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    John Eblen - initial implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.rdt.sync.core;
-
-import java.util.EnumSet;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.ptp.rdt.sync.core.SyncConfig;
-import org.eclipse.ptp.rdt.sync.core.SyncFlag;
-import org.eclipse.ptp.rdt.sync.core.services.ISynchronizeService;
-
-/**
- * Simple class with a single public method for sync'ing. This serves as an adapter for an ISynchronizeService so that clients
- * can use the provider but without the ability to change the provider or read from it. As of 6.0.0, sync providers are dynamic
- * and may handle multiple projects and build configurations. Thus, clients need a way to use the provider but without creating
- * a dependency on the provider's internal data.
- */
-public class SyncRunner {
-	private ISynchronizeService provider;
-	
-	public SyncRunner(ISynchronizeService ssp) {
-		provider = ssp;
-	}
-	
-	public void synchronize(IProject project, SyncConfig syncConfig, IResourceDelta delta,
-			IProgressMonitor monitor, EnumSet<SyncFlag> syncFlags) throws CoreException {
-		provider.synchronize(project, syncConfig, delta, monitor, syncFlags);
-	}
-}
\ No newline at end of file
diff --git a/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/internal/rdt/sync/core/SynchronizedResource.java b/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/internal/rdt/sync/core/SynchronizedResource.java
index ad29bbb..af65629 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/internal/rdt/sync/core/SynchronizedResource.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/internal/rdt/sync/core/SynchronizedResource.java
@@ -18,7 +18,7 @@
 import org.eclipse.ptp.rdt.sync.core.SyncConfigManager;
 import org.eclipse.ptp.rdt.sync.core.SyncFlag;
 import org.eclipse.ptp.rdt.sync.core.SyncManager;
-import org.eclipse.ptp.remote.core.IRemoteResource;
+import org.eclipse.remote.core.IRemoteResource;
 
 public class SynchronizedResource implements IRemoteResource {
 	private IResource fResource;
diff --git a/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/internal/rdt/sync/core/services/SynchronizeServiceDescriptor.java b/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/internal/rdt/sync/core/services/SynchronizeServiceDescriptor.java
index ca462bb..23264aa 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/internal/rdt/sync/core/services/SynchronizeServiceDescriptor.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/internal/rdt/sync/core/services/SynchronizeServiceDescriptor.java
@@ -75,7 +75,8 @@
 								Class<?> cls = Platform.getBundle(configElement.getDeclaringExtension().getContributor().getName())
 										.loadClass(serviceClass);
 								Constructor<?> cons = cls.getConstructor(ISynchronizeServiceDescriptor.class);
-								return (ISynchronizeService) cons.newInstance(this);
+								fService = (ISynchronizeService) cons.newInstance(this);
+								return fService;
 							} catch (Exception e) {
 								String className = configElement.getAttribute(SynchronizeServiceRegistry.ATTR_CLASS);
 								RDTSyncCorePlugin.log(NLS.bind(Messages.SynchronizeServiceDescriptor_Invalid_class, new String[] {
diff --git a/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/AbstractSyncFileFilter.java b/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/AbstractSyncFileFilter.java
index d9666b0..d3da3c1 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/AbstractSyncFileFilter.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/AbstractSyncFileFilter.java
@@ -52,7 +52,7 @@
 		@Override
 		public abstract String toString();
 
-		/** @return String without encoding of extra flags which are querryable separately (currently only exclude) */
+		/** @return String without encoding of extra flags which are queryable separately (currently only exclude) */
 		public abstract String getPattern();
 	}
 
diff --git a/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/PreferenceSyncFileFilterStorage.java b/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/PreferenceSyncFileFilterStorage.java
index 4e75b9b..b1e4709 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/PreferenceSyncFileFilterStorage.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/PreferenceSyncFileFilterStorage.java
@@ -28,16 +28,16 @@
  * @since 3.0
  */
 public class PreferenceSyncFileFilterStorage extends AbstractSyncFileFilter {
-	private class PreferenceIngoreRule extends AbstractIgnoreRule {
+	private class PreferenceIgnoreRule extends AbstractIgnoreRule {
 		String pattern;
 		boolean exclude;
 
-		PreferenceIngoreRule(String p, boolean e) {
+		PreferenceIgnoreRule(String p, boolean e) {
 			pattern = p;
 			exclude = e;
 		}
 
-		PreferenceIngoreRule(String r) {
+		PreferenceIgnoreRule(String r) {
 			pattern = r.substring(1);
 			exclude = r.charAt(0) == '-';
 		}
@@ -137,7 +137,7 @@
 					rules.clear();
 					throw new NoSuchElementException(Messages.PathResourceMatcher_0);
 				}
-				rules.add(new PreferenceIngoreRule(p));
+				rules.add(new PreferenceIgnoreRule(p));
 			}
 			return true;
 		} catch (BackingStoreException e) {
@@ -184,7 +184,7 @@
 	 */
 	@Override
 	public void addPattern(String pattern, boolean exclude, int index) {
-		rules.add(index, new PreferenceIngoreRule(pattern, exclude));
+		rules.add(index, new PreferenceIgnoreRule(pattern, exclude));
 	}
 
 	/*
@@ -194,7 +194,7 @@
 	 */
 	@Override
 	public void addPattern(IResource resource, boolean exclude, int index) {
-		rules.add(index, new PreferenceIngoreRule(resource.getProjectRelativePath().toString(), exclude));
+		rules.add(index, new PreferenceIgnoreRule(resource.getProjectRelativePath().toString(), exclude));
 	}
 
 	/*
diff --git a/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/RemoteLocation.java b/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/RemoteLocation.java
new file mode 100644
index 0000000..c60cda9
--- /dev/null
+++ b/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/RemoteLocation.java
@@ -0,0 +1,244 @@
+/*******************************************************************************
+ * Copyright (c) 2013 The University of Tennessee and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    John Eblen - initial implementation
+ *******************************************************************************/
+package org.eclipse.ptp.rdt.sync.core;
+
+import org.eclipse.core.resources.IPathVariableManager;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.ptp.rdt.sync.core.exceptions.MissingConnectionException;
+import org.eclipse.ptp.rdt.sync.core.handlers.IMissingConnectionHandler;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.RemoteServices;
+
+/**
+ * Class for defining and handling a  "remote location" (primarily a host and directory pair)
+ * Equality is also well-defined so that the class is useful for indexing.
+ *
+ * @since 4.0
+ */
+public class RemoteLocation {
+	/**
+	 * Utility function to resolve a string based on path variables for a certain project. Unless string is in the form:
+	 * ${path_variable:/remainder}, where "path_variable" is a path variable defined for the project, the original string
+	 * is returned unchanged.
+	 * 
+	 * The Eclipse platform should provide a standard mechanism for doing this, but various combinations of URIUtil and
+	 * PathVariableManager methods failed.
+	 * 
+	 * @param project
+	 * @param path
+	 * @return resolved string
+	 */
+	public static String resolveString(IProject project, String path) {
+		// Check basic syntax
+		if (!path.startsWith("${") || !path.endsWith("}")) { //$NON-NLS-1$ //$NON-NLS-2$
+			return path;
+		}
+
+		String newPath = path.substring(2, path.length() - 1);
+
+		// Extract variable's value
+		String variable = newPath.split(":")[0]; //$NON-NLS-1$
+		IPathVariableManager pvm = project.getPathVariableManager();
+		String value = pvm.getURIValue(variable.toUpperCase()).toString();
+		if (value == null) {
+			return path;
+		}
+
+		// Build and return new path
+		value = value.replaceFirst("file:", ""); //$NON-NLS-1$ //$NON-NLS-2$
+		if (value.endsWith("/") || value.endsWith("\\")) { //$NON-NLS-1$ //$NON-NLS-2$
+			value = value.substring(0, path.length() - 1);
+		}
+		return newPath.replaceFirst(variable + ":*", value); //$NON-NLS-1$
+	}
+
+	private String fRemoteServicesId;
+	private String fConnectionName;
+	private String fDirectory;
+
+	private IRemoteServices fRemoteServices;
+	private IRemoteConnection fConnection;
+
+	/**
+	 * Create new RemoteLocation object with all values set to null. Clients should use setters to finish creating object.
+	 */
+	public RemoteLocation() {
+	}
+	/**
+	 * Copy constructor
+	 * @param rl
+	 * 			remote location to copy - cannot be null
+	 */
+	public RemoteLocation(RemoteLocation rl) {
+		fRemoteServicesId = rl.fRemoteServicesId;
+		fConnectionName = rl.fConnectionName;
+		fDirectory = rl.fDirectory;
+		fRemoteServices = rl.fRemoteServices;
+		fConnection = rl.fConnection;
+	}
+
+	/**
+	 * Get name of connection to remote
+	 * @return connection name
+	 */
+	public String getConnectionName() {
+		return fConnectionName;
+	}
+
+	/**
+	 * Get the raw remote location unresolved
+	 * 
+	 * @return remote directory
+	 */
+	public String getDirectory() {
+		return fDirectory;
+	}
+
+	/**
+	 * Get location (directory), resolved in terms of the passed project
+	 *
+	 * @param project
+	 * @return remote directory
+	 */
+	public String getDirectory(IProject project) {
+		return resolveString(project, fDirectory);
+	}
+	
+	/**
+	 * Get remote connection. If connection is missing, this function calls the missing-connection handler. Thus, after catching
+	 * the exception, callers can assume user has already been notified and given an opportunity to define the connection. So
+	 * callers only need to worry about recovering gracefully.
+	 * 
+	 * @return remote connection - never null
+	 * 
+	 * @throws MissingConnectionException
+	 *             if no connection with the stored name exist. This can happen for various reasons:
+	 *             1) The connection was renamed
+	 *             2) The connection was deleted
+	 *             3) The connection never existed, such as when a project is imported to a different workspace
+	 */
+	public IRemoteConnection getConnection() throws MissingConnectionException {
+		if (fRemoteServices == null) {
+			fRemoteServices = RemoteServices.getRemoteServices(fRemoteServicesId);
+			fConnection = null;
+		}
+
+		if (fConnection == null) {
+			fConnection = fRemoteServices.getConnectionManager().getConnection(fConnectionName);
+			if (fConnection == null) {
+				IMissingConnectionHandler mcHandler = SyncManager.getDefaultMissingConnectionHandler();
+				if (mcHandler != null) {
+					mcHandler.handle(fRemoteServices, fConnectionName);
+					fConnection = fRemoteServices.getConnectionManager().getConnection(fConnectionName);
+				}
+			}
+		}
+
+		if (fConnection == null) {
+			throw new MissingConnectionException(fConnectionName);
+		}
+
+		return fConnection;
+	}
+
+	/**
+	 * Get the remote services ID
+	 * 
+	 * @return remote services ID
+	 */
+	public String getRemoteServicesId() {
+		return fRemoteServicesId;
+	}
+	
+	/**
+	 * Set the remote connection
+	 * 
+	 * @param connection
+	 */
+	public void setConnection(IRemoteConnection connection) {
+		fRemoteServices = connection.getRemoteServices();
+		fRemoteServicesId = connection.getRemoteServices().getId();
+		fConnectionName = connection.getName();
+		fConnection = connection;
+	}
+
+	/**
+	 * Set the connection name
+	 * 
+	 * @param connectionName
+	 */
+	public void setConnectionName(String connectionName) {
+		fConnectionName = connectionName;
+		fConnection = null;
+	}
+
+	/**
+	 * Set the sync location
+	 * 
+	 * @param location
+	 */
+	public void setLocation(String location) {
+		fDirectory = location;
+	}
+	
+	/**
+	 * Set the remote services ID
+	 * 
+	 * @param remoteServicesId
+	 */
+	public void setRemoteServicesId(String remoteServicesId) {
+		fRemoteServicesId = remoteServicesId;
+		fRemoteServices = null;
+	}
+
+	@Override
+	public int hashCode() {
+		final int prime = 31;
+		int result = 1;
+		result = prime * result
+				+ ((fConnectionName == null) ? 0 : fConnectionName.hashCode());
+		result = prime * result
+				+ ((fDirectory == null) ? 0 : fDirectory.hashCode());
+		result = prime
+				* result
+				+ ((fRemoteServicesId == null) ? 0 : fRemoteServicesId
+						.hashCode());
+		return result;
+	}
+
+	@Override
+	public boolean equals(Object obj) {
+		if (this == obj)
+			return true;
+		if (obj == null)
+			return false;
+		if (getClass() != obj.getClass())
+			return false;
+		RemoteLocation other = (RemoteLocation) obj;
+		if (fConnectionName == null) {
+			if (other.fConnectionName != null)
+				return false;
+		} else if (!fConnectionName.equals(other.fConnectionName))
+			return false;
+		if (fDirectory == null) {
+			if (other.fDirectory != null)
+				return false;
+		} else if (!fDirectory.equals(other.fDirectory))
+			return false;
+		if (fRemoteServicesId == null) {
+			if (other.fRemoteServicesId != null)
+				return false;
+		} else if (!fRemoteServicesId.equals(other.fRemoteServicesId))
+			return false;
+		return true;
+	}
+}
diff --git a/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/SyncConfig.java b/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/SyncConfig.java
index bd5e706..945c113 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/SyncConfig.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/SyncConfig.java
@@ -13,15 +13,9 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.eclipse.core.resources.IPathVariableManager;
 import org.eclipse.core.resources.IProject;
-import org.eclipse.ptp.internal.rdt.sync.core.services.SynchronizeServiceRegistry;
 import org.eclipse.ptp.rdt.sync.core.exceptions.MissingConnectionException;
-import org.eclipse.ptp.rdt.sync.core.handlers.IMissingConnectionHandler;
-import org.eclipse.ptp.rdt.sync.core.services.ISynchronizeService;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
+import org.eclipse.remote.core.IRemoteConnection;
 
 /**
  * Class to encapsulate information about syncing a project
@@ -29,57 +23,17 @@
  * @since 3.0
  */
 public class SyncConfig implements Comparable<SyncConfig> {
-	/**
-	 * Utility function to resolve a string based on path variables for a certain project. Unless string is in the form:
-	 * ${path_variable:/remainder}, where "path_variable" is a path variable defined for the project, the original string
-	 * is returned unchanged.
-	 * 
-	 * The Eclipse platform should provide a standard mechanism for doing this, but various combinations of URIUtil and
-	 * PathVariableManager methods failed.
-	 * 
-	 * @param project
-	 * @param path
-	 * @return resolved string
-	 */
-	public static String resolveString(IProject project, String path) {
-		// Check basic syntax
-		if (!path.startsWith("${") || !path.endsWith("}")) { //$NON-NLS-1$ //$NON-NLS-2$
-			return path;
-		}
 
-		String newPath = path.substring(2, path.length() - 1);
-
-		// Extract variable's value
-		String variable = newPath.split(":")[0]; //$NON-NLS-1$
-		IPathVariableManager pvm = project.getPathVariableManager();
-		String value = pvm.getURIValue(variable.toUpperCase()).toString();
-		if (value == null) {
-			return path;
-		}
-
-		// Build and return new path
-		value = value.replaceFirst("file:", ""); //$NON-NLS-1$ //$NON-NLS-2$
-		if (value.endsWith("/") || value.endsWith("\\")) { //$NON-NLS-1$ //$NON-NLS-2$
-			value = value.substring(0, path.length() - 1);
-		}
-		return newPath.replaceFirst(variable + ":*", value); //$NON-NLS-1$
-	}
 
 	private String fName;
 	private String fSyncProviderId;
-	private String fConnectionName;
-	private String fRemoteServicesId;
-	private String fLocation;
+	private RemoteLocation remoteLocation;
 	private IProject fProject;
 	private boolean fSyncOnPreBuild = true;
 	private boolean fSyncOnPostBuild = true;
 	private boolean fSyncOnSave = true;
 	private final Map<String, String> fProperties = new HashMap<String, String>();
 
-	private IRemoteServices fRemoteServices;
-	private IRemoteConnection fRemoteConnection;
-	private ISynchronizeService fSyncService;
-
 	/**
 	 * Create a new sync configuration. Should not be called by clients directly. Use
 	 * {@link SyncConfigManager#newConfig(String, String, IRemoteConnection, String)} instead.
@@ -89,6 +43,7 @@
 	 */
 	public SyncConfig(String name) {
 		fName = name;
+		remoteLocation = new RemoteLocation();
 	}
 
 	/*
@@ -125,10 +80,10 @@
 	}
 
 	/**
-	 * @return remote services ID
+	 * @return connection name
 	 */
 	public String getConnectionName() {
-		return fConnectionName;
+		return remoteLocation.getConnectionName();
 	}
 
 	/**
@@ -141,22 +96,24 @@
 	}
 
 	/**
-	 * Get the remote fLocation
-	 * 
-	 * @return fLocation
+	 * Get the raw remote location unresolved
+	 * @return remote directory
 	 */
 	public String getLocation() {
-		return fLocation;
+		return remoteLocation.getDirectory();
 	}
 
 	/**
-	 * Get fLocation (directory), resolved in terms of the passed project
+	 * Get location (directory), resolved in terms of the passed project
+	 * TODO: Legacy code. It doesn't make sense to pass in a project different from the one stored. For now, add an assertion to
+	 * see if this ever occurs.
 	 * 
 	 * @param project
-	 * @return fLocation
+	 * @return remote directory
 	 */
 	public String getLocation(IProject project) {
-		return resolveString(project, fLocation);
+		assert fProject == project;
+		return remoteLocation.getDirectory(project);
 	}
 
 	/**
@@ -199,38 +156,27 @@
 	 *             1) The connection was renamed
 	 *             2) The connection was deleted
 	 *             3) The connection never existed, such as when a project is imported to a different workspace
+	 * @since 4.0
 	 */
 	public IRemoteConnection getRemoteConnection() throws MissingConnectionException {
-		if (fRemoteServices == null) {
-			fRemoteServices = RemoteServices.getRemoteServices(fRemoteServicesId);
-			fRemoteConnection = null;
-		}
+		return remoteLocation.getConnection();
+	}
 
-		if (fRemoteConnection == null) {
-			fRemoteConnection = fRemoteServices.getConnectionManager().getConnection(fConnectionName);
-			if (fRemoteConnection == null) {
-				IMissingConnectionHandler mcHandler = SyncManager.getDefaultMissingConnectionHandler();
-				if (mcHandler != null) {
-					mcHandler.handle(fRemoteServices, fConnectionName);
-					fRemoteConnection = fRemoteServices.getConnectionManager().getConnection(fConnectionName);
-				}
-			}
-		}
-
-		if (fRemoteConnection == null) {
-			throw new MissingConnectionException(fConnectionName);
-		}
-
-		return fRemoteConnection;
+	/**
+	 * Get remote location
+	 * @return remote location
+	 * @since 4.0
+	 */
+	public RemoteLocation getRemoteLocation() {
+		return remoteLocation;
 	}
 
 	/**
 	 * Get the remote services ID
-	 * 
 	 * @return remote services ID
 	 */
 	public String getRemoteServicesId() {
-		return fRemoteServicesId;
+		return remoteLocation.getRemoteServicesId();
 	}
 
 	/**
@@ -242,21 +188,6 @@
 		return fSyncProviderId;
 	}
 
-	/**
-	 * Get the synchronize service
-	 * 
-	 * @return sync service
-	 */
-	public ISynchronizeService getSyncService() {
-		if (fSyncService == null) {
-			fSyncService = SynchronizeServiceRegistry.getSynchronizeServiceDescriptor(getSyncProviderId()).getService();
-			if (fSyncService == null) {
-				throw new RuntimeException("Unable to locate sync service"); //$NON-NLS-1$
-			}
-		}
-		return fSyncService;
-	}
-
 	@Override
 	public int hashCode() {
 		return fName.hashCode();
@@ -302,12 +233,10 @@
 	 * Set the remote connection
 	 * 
 	 * @param connection
+	 * @since 4.0
 	 */
 	public void setConnection(IRemoteConnection connection) {
-		fRemoteServices = connection.getRemoteServices();
-		fRemoteServicesId = connection.getRemoteServices().getId();
-		fConnectionName = connection.getName();
-		fRemoteConnection = connection;
+		remoteLocation.setConnection(connection);
 	}
 
 	/**
@@ -316,8 +245,7 @@
 	 * @param connectionName
 	 */
 	public void setConnectionName(String connectionName) {
-		fConnectionName = connectionName;
-		fRemoteConnection = null;
+		remoteLocation.setConnectionName(connectionName);
 	}
 
 	/**
@@ -326,7 +254,7 @@
 	 * @param location
 	 */
 	public void setLocation(String location) {
-		fLocation = location;
+		remoteLocation.setLocation(location);
 	}
 
 	/**
@@ -354,8 +282,7 @@
 	 * @param remoteServicesId
 	 */
 	public void setRemoteServicesId(String remoteServicesId) {
-		fRemoteServicesId = remoteServicesId;
-		fRemoteServices = null;
+		remoteLocation.setRemoteServicesId(remoteServicesId);
 	}
 
 	/**
@@ -392,6 +319,5 @@
 	 */
 	public void setSyncProviderId(String syncProviderId) {
 		fSyncProviderId = syncProviderId;
-		fSyncService = null;
 	}
 }
\ No newline at end of file
diff --git a/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/SyncConfigManager.java b/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/SyncConfigManager.java
index 1ece22e..7c30223 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/SyncConfigManager.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/SyncConfigManager.java
@@ -33,12 +33,11 @@
 import org.eclipse.ptp.rdt.sync.core.exceptions.MissingConnectionException;
 import org.eclipse.ptp.rdt.sync.core.listeners.ISyncConfigListener;
 import org.eclipse.ptp.rdt.sync.core.resources.RemoteSyncNature;
-import org.eclipse.ptp.rdt.sync.core.services.ISynchronizeService;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnectionManager;
+import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.RemoteServices;
 import org.eclipse.ui.IMemento;
 import org.eclipse.ui.XMLMemento;
 import org.osgi.service.prefs.BackingStoreException;
@@ -252,8 +251,9 @@
 	 * @return a local config
 	 * @throws CoreException
 	 *             on problems retrieving local service elements
+	 * @since 4.0
 	 */
-	public static SyncConfig getLocalConfig(ISynchronizeService syncService) throws CoreException {
+	public static SyncConfig getLocalConfig(String syncServiceId) throws CoreException {
 		IRemoteServices localService = RemoteServices.getLocalServices();
 		if (localService == null) {
 			throw new CoreException(new Status(IStatus.ERROR, RDTSyncCorePlugin.PLUGIN_ID, Messages.SyncConfigManager_0));
@@ -265,7 +265,7 @@
 			throw new CoreException(new Status(IStatus.ERROR, RDTSyncCorePlugin.PLUGIN_ID, Messages.SyncConfigManager_1));
 		}
 
-		return SyncConfigManager.newConfig(LOCAL_SYNC_CONFIG_NAME, syncService.getId(), localConnection, PROJECT_LOCAL_PATH);
+		return SyncConfigManager.newConfig(LOCAL_SYNC_CONFIG_NAME, syncServiceId, localConnection, PROJECT_LOCAL_PATH);
 	}
 
 	/**
@@ -288,7 +288,7 @@
 			} catch (MissingConnectionException e) {
 				return null;
 			}
-			IRemoteFileManager fileMgr = conn.getRemoteServices().getFileManager(conn);
+			IRemoteFileManager fileMgr = conn.getFileManager();
 			return fileMgr.toURI(path);
 		}
 		return null;
@@ -381,6 +381,7 @@
 	 * @param conn
 	 * @param location
 	 * @return
+	 * @since 4.0
 	 */
 	public static SyncConfig newConfig(String name, String providerId, IRemoteConnection conn, String location) {
 		SyncConfig config = new SyncConfig(name);
diff --git a/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/SyncManager.java b/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/SyncManager.java
index 7907a9c..a4e891b 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/SyncManager.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/SyncManager.java
@@ -30,16 +30,16 @@
 import org.eclipse.core.runtime.preferences.IScopeContext;
 import org.eclipse.core.runtime.preferences.InstanceScope;
 import org.eclipse.ptp.internal.rdt.sync.core.RDTSyncCorePlugin;
-import org.eclipse.ptp.internal.rdt.sync.core.SyncRunner;
 import org.eclipse.ptp.internal.rdt.sync.core.SyncUtils;
 import org.eclipse.ptp.internal.rdt.sync.core.messages.Messages;
+import org.eclipse.ptp.internal.rdt.sync.core.services.SynchronizeServiceRegistry;
 import org.eclipse.ptp.rdt.sync.core.handlers.IMissingConnectionHandler;
 import org.eclipse.ptp.rdt.sync.core.handlers.ISyncExceptionHandler;
 import org.eclipse.ptp.rdt.sync.core.listeners.ISyncListener;
 import org.eclipse.ptp.rdt.sync.core.resources.RemoteSyncNature;
 import org.eclipse.ptp.rdt.sync.core.services.ISynchronizeService;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteServices;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteServices;
 import org.osgi.service.prefs.Preferences;
 
 /**
@@ -50,19 +50,19 @@
 public class SyncManager {
 	private static class SynchronizeJob extends Job {
 		private final IProject fProject;
-		private final SyncConfig fBuildScenario;
+		private final SyncConfig fSyncConfig;
 		private final IResourceDelta fDelta;
-		private final SyncRunner fSyncRunner;
+		private final ISynchronizeService fSyncService;
 		private final EnumSet<SyncFlag> fSyncFlags;
 		private final ISyncExceptionHandler fSyncExceptionHandler;
 
-		public SynchronizeJob(IProject project, SyncConfig syncConfig, IResourceDelta delta, SyncRunner runner,
+		public SynchronizeJob(IProject project, SyncConfig syncConfig, IResourceDelta delta, ISynchronizeService syncService,
 				EnumSet<SyncFlag> syncFlags, ISyncExceptionHandler seHandler) {
 			super(Messages.SyncManager_4);
 			fProject = project;
-			fBuildScenario = syncConfig;
+			fSyncConfig = syncConfig;
 			fDelta = delta;
-			fSyncRunner = runner;
+			fSyncService = syncService;
 			fSyncFlags = syncFlags;
 			fSyncExceptionHandler = seHandler;
 		}
@@ -76,7 +76,8 @@
 		protected IStatus run(IProgressMonitor monitor) {
 			RecursiveSubMonitor subMonitor = RecursiveSubMonitor.convert(monitor);
 			try {
-				fSyncRunner.synchronize(fProject, fBuildScenario, fDelta, subMonitor, fSyncFlags);
+				RemoteLocation rl = new RemoteLocation(fSyncConfig.getRemoteLocation());
+				fSyncService.synchronize(fProject, rl, fDelta, subMonitor, fSyncFlags);
 			} catch (CoreException e) {
 				if (fSyncExceptionHandler == null) {
 					defaultSyncExceptionHandler.handle(fProject, e);
@@ -155,24 +156,25 @@
 	 *            synchronize filter, or null if no filter
 	 * @throws CoreException
 	 *             on problems adding sync nature
+	 * @since 4.0
 	 */
-	public static void makeSyncProject(IProject project, String remoteSyncConfigName, ISynchronizeService provider,
-			AbstractSyncFileFilter fileFilter) throws CoreException {
+	public static void makeSyncProject(IProject project, String remoteSyncConfigName, String syncServiceId,
+			IRemoteConnection conn, String location, AbstractSyncFileFilter fileFilter) throws CoreException {
 		RemoteSyncNature.addNature(project, new NullProgressMonitor());
 
 		// Remote config
-		IRemoteConnection conn = provider.getRemoteConnection();
-		SyncConfig config = SyncConfigManager.newConfig(remoteSyncConfigName, provider.getId(), conn, provider.getLocation());
+		SyncConfig config = SyncConfigManager.newConfig(remoteSyncConfigName, syncServiceId, conn, location);
 		SyncConfigManager.addConfig(project, config);
 		SyncConfigManager.setActive(project, config);
 		if (fileFilter == null) {
 			fileFilter = SyncManager.getDefaultFileFilter();
 		}
-		provider.setSyncFileFilter(project, fileFilter);
+		ISynchronizeService syncService = getSyncService(syncServiceId);
+		syncService.setSyncFileFilter(project, fileFilter);
 
 		// Local config
 		try {
-			config = SyncConfigManager.getLocalConfig(provider);
+			config = SyncConfigManager.getLocalConfig(syncServiceId);
 			SyncConfigManager.addConfig(project, config);
 		} catch (CoreException e) {
 			RDTSyncCorePlugin.log(Messages.SyncManager_0, e);
@@ -223,7 +225,15 @@
 	 * @return the file filter. This is never null.
 	 */
 	public static AbstractSyncFileFilter getFileFilter(IProject project) {
-		return SyncConfigManager.getActive(project).getSyncService().getSyncFileFilter(project);
+		String currentSyncServiceId = SyncConfigManager.getActive(project).getSyncProviderId();
+		AbstractSyncFileFilter filter = null;
+		try {
+			filter = SyncManager.getSyncService(currentSyncServiceId).getSyncFileFilter(project);
+		} catch (CoreException e) {
+			RDTSyncCorePlugin.log(e);
+			return getDefaultFileFilter();
+		}
+		return filter;
 	}
 
 	/**
@@ -281,6 +291,18 @@
 		return SyncMode.valueOf(node.get(SYNC_MODE_KEY, DEFAULT_SYNC_MODE.name()));
 	}
 
+	/**
+	 * Get the synchronize service for the given sync service id
+	 * 
+	 * @param syncServiceId
+	 *
+	 * @return sync service or null if service not found
+	 * @since 4.0
+	 */
+	public static ISynchronizeService getSyncService(String syncServiceId) {
+		return SynchronizeServiceRegistry.getSynchronizeServiceDescriptor(syncServiceId).getService();
+	}
+
 	private static void notifySyncListeners(IProject project) {
 		Set<ISyncListener> listenerSet = fProjectToSyncListenersMap.get(project);
 		if (listenerSet == null) {
@@ -313,10 +335,11 @@
 	 *            cannot be null
 	 * @param filter
 	 *            cannot be null
-	 * @throws IOException
+	 * @throws CoreException
 	 */
-	public static void saveFileFilter(IProject project, AbstractSyncFileFilter filter) throws IOException {
-		SyncConfigManager.getActive(project).getSyncService().setSyncFileFilter(project, filter);
+	public static void saveFileFilter(IProject project, AbstractSyncFileFilter filter) throws CoreException {
+		String currentSyncServiceId = SyncConfigManager.getActive(project).getSyncProviderId();
+		SyncManager.getSyncService(currentSyncServiceId).setSyncFileFilter(project, filter);
 	}
 
 	// Note that the monitor is ignored for non-blocking jobs since SynchronizeJob creates its own monitor
@@ -338,11 +361,13 @@
 				continue;
 			}
 			SynchronizeJob job = null;
-			SyncRunner syncRunner = new SyncRunner(config.getSyncService());
-			if (syncRunner != null) {
+			String currentSyncServiceId = config.getSyncProviderId();
+			ISynchronizeService syncService = SyncManager.getSyncService(currentSyncServiceId);
+			if (syncService != null) {
 				if (isBlocking) {
 					try {
-						syncRunner.synchronize(project, config, delta, monitor, syncFlags);
+						RemoteLocation rl = new RemoteLocation(config.getRemoteLocation());
+						syncService.synchronize(project, rl, delta, monitor, syncFlags);
 					} catch (CoreException e) {
 						if (!useExceptionHandler) {
 							throw e;
@@ -355,7 +380,7 @@
 						SyncManager.notifySyncListeners(project);
 					}
 				} else {
-					job = new SynchronizeJob(project, config, delta, syncRunner, syncFlags, seHandler);
+					job = new SynchronizeJob(project, config, delta, syncService, syncFlags, seHandler);
 					job.schedule();
 				}
 			}
diff --git a/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/handlers/IMissingConnectionHandler.java b/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/handlers/IMissingConnectionHandler.java
index 275fcec..4449669 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/handlers/IMissingConnectionHandler.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/handlers/IMissingConnectionHandler.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.ptp.rdt.sync.core.handlers;
 
-import org.eclipse.ptp.remote.core.IRemoteServices;
+import org.eclipse.remote.core.IRemoteServices;
 
 /**
  * Class for encapsulating logic to handle missing connections. The UI can specify a default handler for the core to execute so
@@ -26,6 +26,7 @@
 	 *            remote services for the connection
 	 * @param connectionName
 	 *            connection name
+	 * @since 4.0
 	 */
 	public void handle(IRemoteServices remoteServices, String connectionName);
 }
\ No newline at end of file
diff --git a/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/services/AbstractSynchronizeService.java b/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/services/AbstractSynchronizeService.java
index 5b42bae..f33794d 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/services/AbstractSynchronizeService.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/services/AbstractSynchronizeService.java
@@ -10,19 +10,12 @@
  *******************************************************************************/
 package org.eclipse.ptp.rdt.sync.core.services;
 
-import org.eclipse.ptp.internal.rdt.sync.core.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-
 /**
- * @since 3.0
+ * @since 4.0
  */
 public abstract class AbstractSynchronizeService implements ISynchronizeService {
-
 	private final ISynchronizeServiceDescriptor fDescriptor;
 
-	private String fLocation;
-	private IRemoteConnection fConnection;
-
 	public AbstractSynchronizeService(ISynchronizeServiceDescriptor descriptor) {
 		fDescriptor = descriptor;
 	}
@@ -32,16 +25,6 @@
 		return fDescriptor.getId();
 	}
 
-	/**
-	 * Get the remote directory that will be used for synchronization
-	 * 
-	 * @return path
-	 */
-	@Override
-	public String getLocation() {
-		return fLocation;
-	}
-
 	@Override
 	public String getName() {
 		return fDescriptor.getName();
@@ -50,48 +33,10 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.rdt.sync.core.services.ISynchronizeService#getRemoteConnection()
-	 */
-	@Override
-	public IRemoteConnection getRemoteConnection() {
-		return fConnection;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
 	 * @see org.eclipse.ptp.rdt.sync.core.services.ISynchronizeServiceDescriptor#getService()
 	 */
 	@Override
 	public ISynchronizeService getService() {
 		return this;
 	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.rdt.sync.core.services.ISynchronizeService#setLocation(java.lang.String)
-	 */
-	@Override
-	public void setLocation(String location) {
-		if (fLocation != null) {
-			throw new RuntimeException(Messages.AbstractSynchronizeService_Change_remote_location);
-		}
-		fLocation = location;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.rdt.sync.core.services.ISynchronizeService#setRemoteConnection(org.eclipse.ptp.remote.core.IRemoteConnection)
-	 */
-	@Override
-	public void setRemoteConnection(IRemoteConnection conn) {
-		if (fConnection != null) {
-			throw new RuntimeException(Messages.AbstractSynchronizeService_Change_remote_connection);
-		}
-		fConnection = conn;
-	}
-
 }
diff --git a/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/services/ISynchronizeService.java b/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/services/ISynchronizeService.java
index 44b601b..12855e4 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/services/ISynchronizeService.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/services/ISynchronizeService.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008, 2010 IBM Corporation and others.
+ * Copyright (c) 2008, 2010, 2013 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -19,16 +19,15 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.ptp.rdt.sync.core.SyncConfig;
+import org.eclipse.ptp.rdt.sync.core.RemoteLocation;
 import org.eclipse.ptp.rdt.sync.core.AbstractSyncFileFilter;
+import org.eclipse.ptp.rdt.sync.core.SyncConfig;
 import org.eclipse.ptp.rdt.sync.core.SyncFlag;
-import org.eclipse.ptp.rdt.sync.core.exceptions.RemoteSyncException;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
 
 /**
  * Provides synchronization services.
  * 
- * @since 3.0
+ * @since 4.0
  */
 public interface ISynchronizeService extends ISynchronizeServiceDescriptor {
 
@@ -36,102 +35,75 @@
 	 * Replace the current contents of the given paths with the previous versions in the repository
 	 * 
 	 * @param project
-	 * @param syncConfig
 	 * @param path
 	 * @throws CoreException
+	 * @since 4.0
 	 */
-	public void checkout(IProject project, SyncConfig syncConfig, IPath[] paths) throws CoreException;
+	public void checkout(IProject project, IPath[] paths) throws CoreException;
 
 	/**
 	 * Replace the current contents of the given paths with the current local copies of the remote (not necessarily the same as what
 	 * is on the remote site). This is useful in merge-conflict resolution.
 	 * 
 	 * @param project
-	 * @param syncConfig
 	 * @param path
 	 * @throws CoreException
+	 * @since 4.0
 	 */
-	public void checkoutRemoteCopy(IProject project, SyncConfig syncConfig, IPath[] paths) throws CoreException;
+	public void checkoutRemoteCopy(IProject project, IPath[] paths) throws CoreException;
 
 	/**
 	 * Close any resources (files, sockets) that were open by the sync provider for the given project. Resources not open by the
 	 * provider should not be touched. This is called, for example, when a project is about to be deleted.
-	 */
-	public void close(IProject project);
-
-	/**
-	 * Get the remote directory that will be used for synchronization
 	 * 
-	 * @return String
+	 * @throws CoreException
 	 */
-	public String getLocation();
+	public void close(IProject project) throws CoreException;
 
 	/**
 	 * Get the current list of merge-conflicted files for the passed project and build scenario
 	 * 
 	 * @param project
-	 * @param syncConfig
 	 * @return set of files as project-relative IPaths. This may be an empty set but never null.
 	 * @throws CoreException
 	 *             for system-level problems retrieving merge information
+	 * @since 4.0
 	 */
-	public Set<IPath> getMergeConflictFiles(IProject project, SyncConfig syncConfig) throws CoreException;
+	public Set<IPath> getMergeConflictFiles(IProject project) throws CoreException;
 
 	/**
 	 * Get the three parts of the merge-conflicted file (left, right, and ancestor, respectively)
 	 * 
 	 * @param project
-	 * @param syncConfig
 	 * @param file
 	 * @return the three parts as strings. Either three strings (some may be empty) or null if file is not merge-conflicted.
 	 * @throws CoreException
 	 *             for system-level problems retrieving merge information
+	 * @since 4.0
 	 */
-	public String[] getMergeConflictParts(IProject project, SyncConfig syncConfig, IFile file) throws CoreException;
+	public String[] getMergeConflictParts(IProject project, IFile file) throws CoreException;
 
 	/**
-	 * Get the remote connection used by this sync service provider.
-	 * 
-	 * @return connection
-	 */
-	public IRemoteConnection getRemoteConnection();
-
-	/**
-	 * Set the remote directory that will be used for synchronization
-	 * 
-	 * @param location
-	 *            directory path
-	 * @throws RuntimeException
-	 *             if already set. Changing these local parameters is not currently supported but should be possible.
-	 */
-	public void setLocation(String location);
-
-	/**
+	 * @since 4.0
 	 * Set the given file paths as resolved (merge conflict does not exist)
 	 * 
 	 * @param project
-	 * @param syncConfig
 	 * @param path
 	 * @throws CoreException
 	 *             for system-level problems setting the state
+	 * @since 4.0
 	 */
-	public void setMergeAsResolved(IProject project, SyncConfig syncConfig, IPath[] paths) throws CoreException;
+	public void setMergeAsResolved(IProject project, IPath[] paths) throws CoreException;
 
 	/**
-	 * set the remote connection used for synchronization
-	 * 
-	 * @param conn
-	 *            remote connection
-	 * @throws RuntimeException
-	 *             if already set. Changing these local parameters is not currently supported but should be possible.
-	 */
-	public void setRemoteConnection(IRemoteConnection conn);
-
-	/**
+	 * @since 4.0
 	 * Perform synchronization
 	 * 
 	 * @param project
-	 *            project to sync
+	 *            project to sync - cannot be null
+	 * @param remoteLoc
+	 *			  remote sync target - cannot be null.
+	 *			  Warning: Recommended that both clients and implementors make a copy to prevent subtle bugs if object is modified
 	 * @param delta
 	 *            resources requiring synchronization
 	 * @param monitor
@@ -143,26 +115,29 @@
 	 *            returning. Otherwise, it may happen at any time.
 	 * @throws CoreException
 	 *             if synchronization fails
+	 * @since 4.0
 	 */
-	public void synchronize(IProject project, SyncConfig syncConfig, IResourceDelta delta,
+	public void synchronize(IProject project, RemoteLocation remoteLoc, IResourceDelta delta,
 			IProgressMonitor monitor, EnumSet<SyncFlag> syncFlags) throws CoreException;
-	
+
 	/**
-	 * Get SyncFileFilter. Empty if not initialized before
-	 *
+	 * Get SyncFileFilter for given project
+	 * 
 	 * @param project
-	 *
+	 * 
 	 * @return file filter
-	 * @throws RemoteSyncException 
+	 * @throws CoreException 
 	 */
-	public AbstractSyncFileFilter getSyncFileFilter(IProject project);
+	public AbstractSyncFileFilter getSyncFileFilter(IProject project) throws CoreException;
 
 	/**
 	 * Set sync file filter for the given project
-	 *
-	 * @param project - cannot be null
+	 * 
+	 * @param project
+	 *            - cannot be null
 	 * @param filter
-	 *          generic file filter  - cannot be null
+	 *            generic file filter - cannot be null
+	 * @throws CoreException
 	 */
-	public void setSyncFileFilter(IProject project, AbstractSyncFileFilter filter);
+	public void setSyncFileFilter(IProject project, AbstractSyncFileFilter filter) throws CoreException;
 }
diff --git a/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/services/ISynchronizeServiceDescriptor.java b/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/services/ISynchronizeServiceDescriptor.java
index 997fb2b..04f1d53 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/services/ISynchronizeServiceDescriptor.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.core/src/org/eclipse/ptp/rdt/sync/core/services/ISynchronizeServiceDescriptor.java
@@ -31,7 +31,8 @@
 	public String getName();
 
 	/**
-	 * @return
+	 * This function returns an instance of the sync service. Only one such instance is ever created (constructor is only called one time).
+	 * @return sync service
 	 */
 	public ISynchronizeService getService();
 }
diff --git a/rdt/org.eclipse.ptp.rdt.sync.fortran.ui/.options b/rdt/org.eclipse.ptp.rdt.sync.fortran.ui/.options
deleted file mode 100644
index 792de3d..0000000
--- a/rdt/org.eclipse.ptp.rdt.sync.fortran.ui/.options
+++ /dev/null
@@ -1,7 +0,0 @@
-# Debugging options for the org.eclipse.ptp.rdt.sync.ui
-
-# Also displays overall startup time.
-org.eclipse.ptp.rdt.sync.ui/debug=false
-
-# Enables dstore server tracing
-org.eclipse.ptp.rdt.sync.ui/debug/dstore/tracing=false
diff --git a/rdt/org.eclipse.ptp.rdt.sync.fortran.ui/pom.xml b/rdt/org.eclipse.ptp.rdt.sync.fortran.ui/pom.xml
index 181dd61..e2f2017 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.fortran.ui/pom.xml
+++ b/rdt/org.eclipse.ptp.rdt.sync.fortran.ui/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rdt/org.eclipse.ptp.rdt.sync.git.core/META-INF/MANIFEST.MF b/rdt/org.eclipse.ptp.rdt.sync.git.core/META-INF/MANIFEST.MF
index f57bcf8..1a4c590 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.git.core/META-INF/MANIFEST.MF
+++ b/rdt/org.eclipse.ptp.rdt.sync.git.core/META-INF/MANIFEST.MF
@@ -8,7 +8,7 @@
  org.eclipse.core.resources,
  org.eclipse.core.filesystem,
  org.eclipse.ptp.rdt.sync.core,
- org.eclipse.ptp.remote.core,
+ org.eclipse.remote.core,
  org.eclipse.jgit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/rdt/org.eclipse.ptp.rdt.sync.git.core/pom.xml b/rdt/org.eclipse.ptp.rdt.sync.git.core/pom.xml
index 7ef2d7c..80c49d0 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.git.core/pom.xml
+++ b/rdt/org.eclipse.ptp.rdt.sync.git.core/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/CommandRunner.java b/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/CommandRunner.java
index 0b6be4e..bd11e8a 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/CommandRunner.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/CommandRunner.java
@@ -27,11 +27,11 @@
 import org.eclipse.ptp.internal.rdt.sync.git.core.messages.Messages;
 import org.eclipse.ptp.rdt.sync.core.RecursiveSubMonitor;
 import org.eclipse.ptp.rdt.sync.core.exceptions.RemoteSyncException;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.core.IRemoteProcess;
-import org.eclipse.ptp.remote.core.IRemoteProcessBuilder;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteProcess;
+import org.eclipse.remote.core.IRemoteProcessBuilder;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
 
 // Static class for running system-level commands. This includes local and remote directory operations and also running arbitrary
 // commands on remote machines.
@@ -113,7 +113,7 @@
 	 * @return the directory status
 	 */
 	public static DirectoryStatus checkRemoteDirectory(IRemoteConnection conn, String remoteDir) {
-		final IRemoteFileManager fileManager = conn.getRemoteServices().getFileManager(conn);
+		final IRemoteFileManager fileManager = conn.getFileManager();
 		final IFileStore fileStore = fileManager.getResource(remoteDir);
 		final IFileInfo fileInfo = fileStore.fetchInfo();
 
@@ -155,7 +155,7 @@
 	 */
 	public static DirectoryStatus createRemoteDirectory(IRemoteConnection conn, String remoteDir, IProgressMonitor monitor)
 			throws CoreException {
-		final IRemoteFileManager fileManager = conn.getRemoteServices().getFileManager(conn);
+		final IRemoteFileManager fileManager = conn.getFileManager();
 		final IFileStore fileStore = fileManager.getResource(remoteDir);
 		final IFileInfo fileInfo = fileStore.fetchInfo();
 
@@ -224,8 +224,8 @@
 		try {
 			progress.subTask(Messages.CommandRunner_4);
 			conn.open(progress.newChild(50));
-			final IRemoteProcessBuilder rpb = conn.getRemoteServices().getProcessBuilder(conn, commandList);
-			final IRemoteFileManager rfm = conn.getRemoteServices().getFileManager(conn);
+			final IRemoteProcessBuilder rpb = conn.getProcessBuilder(commandList);
+			final IRemoteFileManager rfm = conn.getFileManager();
 			if (remoteDirectory != null && remoteDirectory.length() > 0) {
 				rpb.directory(rfm.getResource(remoteDirectory));
 			}
diff --git a/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/GitRemoteSyncConnection.java b/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/GitRemoteSyncConnection.java
deleted file mode 100644
index 3c218b6..0000000
--- a/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/GitRemoteSyncConnection.java
+++ /dev/null
@@ -1,1156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 Oak Ridge National Laboratory and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    John Eblen - initial implementation
- *******************************************************************************/
-package org.eclipse.ptp.internal.rdt.sync.git.core;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.filesystem.EFS;
-import org.eclipse.core.filesystem.IFileStore;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.preferences.IScopeContext;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.jgit.api.AddCommand;
-import org.eclipse.jgit.api.CheckoutCommand;
-import org.eclipse.jgit.api.CommitCommand;
-import org.eclipse.jgit.api.Git;
-import org.eclipse.jgit.api.MergeCommand;
-import org.eclipse.jgit.api.RmCommand;
-import org.eclipse.jgit.api.Status;
-import org.eclipse.jgit.api.StatusCommand;
-import org.eclipse.jgit.api.errors.GitAPIException;
-import org.eclipse.jgit.errors.AmbiguousObjectException;
-import org.eclipse.jgit.errors.NotSupportedException;
-import org.eclipse.jgit.errors.TransportException;
-import org.eclipse.jgit.lib.Constants;
-import org.eclipse.jgit.lib.ObjectId;
-import org.eclipse.jgit.lib.Ref;
-import org.eclipse.jgit.lib.Repository;
-import org.eclipse.jgit.lib.RepositoryState;
-import org.eclipse.jgit.lib.StoredConfig;
-import org.eclipse.jgit.revwalk.RevCommit;
-import org.eclipse.jgit.revwalk.RevTree;
-import org.eclipse.jgit.revwalk.RevWalk;
-import org.eclipse.jgit.revwalk.filter.RevFilter;
-import org.eclipse.jgit.storage.file.FileRepositoryBuilder;
-import org.eclipse.jgit.transport.CredentialsProvider;
-import org.eclipse.jgit.transport.RefSpec;
-import org.eclipse.jgit.transport.RemoteConfig;
-import org.eclipse.jgit.transport.RemoteSession;
-import org.eclipse.jgit.transport.SshSessionFactory;
-import org.eclipse.jgit.transport.Transport;
-import org.eclipse.jgit.transport.TransportGitSsh;
-import org.eclipse.jgit.transport.URIish;
-import org.eclipse.jgit.treewalk.TreeWalk;
-import org.eclipse.jgit.util.FS;
-import org.eclipse.ptp.internal.rdt.sync.git.core.CommandRunner.CommandResults;
-import org.eclipse.ptp.internal.rdt.sync.git.core.GitSyncFileFilter.DiffFiles;
-import org.eclipse.ptp.internal.rdt.sync.git.core.messages.Messages;
-import org.eclipse.ptp.rdt.sync.core.RecursiveSubMonitor;
-import org.eclipse.ptp.rdt.sync.core.SyncConfig;
-import org.eclipse.ptp.rdt.sync.core.AbstractSyncFileFilter;
-import org.eclipse.ptp.rdt.sync.core.SyncConfigManager;
-import org.eclipse.ptp.rdt.sync.core.exceptions.MissingConnectionException;
-import org.eclipse.ptp.rdt.sync.core.exceptions.RemoteExecutionException;
-import org.eclipse.ptp.rdt.sync.core.exceptions.RemoteSyncException;
-import org.eclipse.ptp.rdt.sync.core.exceptions.RemoteSyncMergeConflictException;
-import org.eclipse.ptp.remote.core.AbstractRemoteProcess;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
-import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
-
-/**
- * 
- * This class implements a remote sync tool using git, as accessed through the
- * jgit library.
- * 
- */
-public class GitRemoteSyncConnection {
-	private static final String instanceScopeSyncNode = "org.eclipse.ptp.rdt.sync.core"; //$NON-NLS-1$
-	private static final String GIT_LOCATION_NODE_NAME = "git-location"; //$NON-NLS-1$
-
-	private final int MAX_FILES = 100;
-	private static final String remoteProjectName = "eclipse_auto"; //$NON-NLS-1$
-	private static final String commitMessage = Messages.GRSC_CommitMessage;
-	public static final String gitDir = ".ptp-sync"; //$NON-NLS-1$
-	private static final String gitArgs = "--git-dir=" + gitDir + " --work-tree=."; //$NON-NLS-1$ //$NON-NLS-2$
-	private static final String remotePushBranch = "ptp-push"; //$NON-NLS-1$
-	private final String localDirectory;
-	private final SyncConfig syncConfig;
-	GitSyncFileFilter fileFilter;
-	private Git git;
-	private TransportGitSsh transport;
-	private final IProject project;
-
-	private boolean mergeMapInitialized = false; // Call "readMergeConflictFiles" at least once before using the map.
-	private final Map<IPath, String[]> FileToMergePartsMap = new HashMap<IPath, String[]>();
-	private int remoteGitVersion;
-
-	/**
-	 * Get the local Git repository for the given project, creating it if necessary.
-	 *
-	 * @param project
-	 * @param localDirectory
-	 * 				project location on local host
-	 * @return new local Git repository - should never be null.
-	 * @throws IOException
-	 */
-	public static Repository getLocalRepo(String localDirectory) throws IOException {
-		final File localDir = new File(localDirectory);
-		final FileRepositoryBuilder repoBuilder = new FileRepositoryBuilder();
-		File gitDirFile = new File(localDirectory + File.separator + gitDir);
-		Repository repository = repoBuilder.setWorkTree(localDir).setGitDir(gitDirFile).build();
-
-		// Create and configure local repository if it is not already present
-		if (!(gitDirFile.exists())) {
-			repository.create(false);
-		}
-
-		return repository;
-	}
-
-	/**
-	 * Create a remote sync connection using git. Assumes that the local
-	 * directory exists but not necessarily the remote directory. It is created
-	 * if not.
-	 * 
-	 * @param conn
-	 * @param localDir
-	 * @param remoteDir
-	 * @throws RemoteSyncException
-	 *             on problems building the remote repository. Specific
-	 *             exception nested. Upon such an exception, the instance is
-	 *             invalid and should not be used.
-	 * @throws MissingConnectionException
-	 *             when connection missing. In this case, the instance is
-	 *             also invalid.
-	 */
-	public GitRemoteSyncConnection(IProject proj, String localDir, SyncConfig bs, AbstractSyncFileFilter filter, IProgressMonitor monitor)
-			throws RemoteSyncException, MissingConnectionException {
-		RecursiveSubMonitor subMon = RecursiveSubMonitor.convert(monitor, 100);
-		try {
-			project = proj;
-			localDirectory = localDir;
-			syncConfig = bs;
-			fileFilter = (GitSyncFileFilter)filter;
-
-			// Build repo, creating it if it is not already present.
-			try {
-				subMon.subTask(Messages.GitRemoteSyncConnection_21);
-				remoteGitVersion = getRemoteGitVersion(subMon.newChild(10));
-				subMon.subTask(Messages.GitRemoteSyncConnection_20);
-				buildRepo(subMon.newChild(80));
-			} catch (final IOException e) {
-				throw new RemoteSyncException(e);
-			} catch (final RemoteExecutionException e) {
-				throw new RemoteSyncException(e);
-			}
-
-			// Build transport
-			final RemoteConfig remoteConfig = buildRemoteConfig(git.getRepository().getConfig());
-			subMon.subTask(Messages.GitRemoteSyncConnection_4);
-			buildTransport(remoteConfig, subMon.newChild(10));
-		} finally {
-			if (monitor != null) {
-				monitor.done();
-			}
-		}
-	}
-
-	/**
-	 * Builds the remote configuration for the connection, setting up fetch and
-	 * push operations between local and remote master branches.
-	 * 
-	 * @param config
-	 *            configuration for the local repository
-	 * @return the remote configuration
-	 * @throws RuntimeException
-	 *             if the URI in the passed configuration is not properly
-	 *             formatted.
-	 */
-	private RemoteConfig buildRemoteConfig(StoredConfig config) {
-		RemoteConfig rconfig = null;
-
-		try {
-			rconfig = new RemoteConfig(config, remoteProjectName);
-		} catch (final URISyntaxException e) {
-			throw new RuntimeException(e);
-		}
-
-		final RefSpec refSpecFetch = new RefSpec("+refs/heads/master:refs/remotes/" + //$NON-NLS-1$
-				remoteProjectName + "/master"); //$NON-NLS-1$
-		final RefSpec refSpecPush = new RefSpec("+master:" + remotePushBranch); //$NON-NLS-1$
-		rconfig.addFetchRefSpec(refSpecFetch);
-		rconfig.addPushRefSpec(refSpecPush);
-
-		return rconfig;
-	}
-
-	/**
-	 * 
-	 * @param monitor
-	 * @param localDirectory
-	 * @param remoteHost
-	 * @return the repository
-	 * @throws IOException
-	 *             on problems writing to the file system.
-	 * @throws RemoteExecutionException
-	 *             on failure to run remote commands.
-	 * @throws RemoteSyncException
-	 *             on problems with initial local commit. 
-	 *             TODO: Consider the consequences of exceptions that occur at various points,
-	 *             which can leave the repo in a partial state. For example, if
-	 *             the repo is created but the initial commit fails.
-	 *             TODO: Consider evaluating the output of "git init".
-	 * @throws MissingConnectionException
-	 *             on missing connection.
-	 */
-	private Git buildRepo(IProgressMonitor monitor) throws IOException, RemoteExecutionException, RemoteSyncException,
-			MissingConnectionException {
-		final RecursiveSubMonitor subMon = RecursiveSubMonitor.convert(monitor, 100);
-		try {
-			subMon.subTask(Messages.GitRemoteSyncConnection_1);
-			git = new Git(getLocalRepo(localDirectory));
-			
-            // An initial commit to create the master branch.
-            subMon.subTask(Messages.GitRemoteSyncConnection_22);
-            doCommit(subMon.newChild(4));
-
-			// Refresh project
-			subMon.subTask(Messages.GitRemoteSyncConnection_23);
-			final Thread refreshThread = doRefresh(project, subMon.newChild(1));
-
-			// Set git repo as derived, which can only be done after refresh completes.
-			// This prevents user-level operations, such as searching, from considering the repo directory.
-			Thread setDerivedThread = new Thread(new Runnable() {
-				@Override
-				public void run() {
-					try {
-						refreshThread.join();
-						project.getFolder(gitDir).setDerived(true, null);
-					} catch (InterruptedException e) {
-						Activator.log(e);
-					} catch (CoreException e) {
-						Activator.log(e);
-					}
-				}
-			}, "Set repo as derived thread"); //$NON-NLS-1$
-			setDerivedThread.start();
-
-			// Create remote directory if necessary.
-			try {
-				subMon.subTask(Messages.GitRemoteSyncConnection_24);
-				CommandRunner.createRemoteDirectory(syncConfig.getRemoteConnection(), syncConfig.getLocation(project),
-						subMon.newChild(5));
-			} catch (final CoreException e) {
-				throw new RemoteSyncException(e);
-			}
-
-			// Initialize remote directory if necessary
-			subMon.subTask(Messages.GitRemoteSyncConnection_25);
-			doRemoteInit(subMon.newChild(5));
-
-			subMon.subTask(Messages.GitRemoteSyncConnection_27);
-			commitRemoteFiles(subMon.newChild(5));
-
-			return git;
-		} finally {
-			if (monitor != null) {
-				monitor.done();
-			}
-		}
-	}
-
-	/**
-	 * Create and configure remote repository if it is not already present. Note
-	 * that "git init" is "safe" on a repo already created, so we can simply
-	 * rerun it each time.
-	 * 
-	 * @param monitor
-	 * @throws IOException
-	 * @throws RemoteExecutionException
-	 * @throws RemoteSyncException
-	 * @throws MissingConnectionException
-	 * @return whether this repo already existed
-	 */
-	private boolean doRemoteInit(IProgressMonitor monitor) throws IOException, RemoteExecutionException, RemoteSyncException,
-			MissingConnectionException {
-		try {
-			String commands = "git --git-dir=" + gitDir + " init && " + //$NON-NLS-1$ //$NON-NLS-2$
-					"git --git-dir=" + gitDir + " config core.preloadindex true"; //$NON-NLS-1$ //$NON-NLS-2$
-			CommandResults commandResults = null;
-
-			try {
-				commandResults = this.executeRemoteCommand(commands, monitor);
-			} catch (final InterruptedException e) {
-				throw new RemoteExecutionException(e);
-			} catch (RemoteConnectionException e) {
-				throw new RemoteExecutionException(e);
-			}
-
-			if (commandResults.getExitCode() != 0) {
-				throw new RemoteExecutionException(Messages.GRSC_GitInitFailure + commandResults.getStderr());
-			}
-
-			// Pattern matching is error prone, of course, so make this more
-			// likely to return false. This will cause all files to be
-			// added, which is better than leaving all files untracked. This is
-			// better for users without knowledge of git, who would
-			// likely not be connecting to a previous git repo.
-			if (commandResults.getStdout().contains("existing")) { //$NON-NLS-1$
-				return true;
-			} else {
-				return false;
-			}
-		} finally {
-			if (monitor != null) {
-				monitor.done();
-			}
-		}
-	}
-
-	/*
-	 * Do a "git commit" on the remote host
-	 */
-	private void commitRemoteFiles(IProgressMonitor monitor) throws RemoteSyncException, MissingConnectionException {
-		try {
-			String property = syncConfig.getProperty(GitSyncFileFilter.REMOTE_FILTER_IS_DIRTY);
-			if (property==null || property.equals("TRUE")) { //$NON-NLS-1$
-				IRemoteConnection conn = syncConfig.getRemoteConnection();
-				IRemoteServices remoteServices = conn.getRemoteServices();
-				Repository repository = git.getRepository();
-				
-				//copy info/exclude to remote
-				File exclude = repository.getFS().resolve(repository.getDirectory(),
-						Constants.INFO_EXCLUDE);
-				IFileStore local = EFS.getLocalFileSystem().getStore(new Path(exclude.getAbsolutePath()));
-				String remoteExclude = syncConfig.getLocation(project) + "/" + gitDir + "/" + Constants.INFO_EXCLUDE;  //$NON-NLS-1$ //$NON-NLS-2$
-				IFileStore remote = remoteServices.getFileManager(conn).getResource(remoteExclude);
-				local.copy(remote, EFS.OVERWRITE, monitor);
-				
-				//remove ignored files from index
-				if (remoteGitVersion>=1080102) {
-					final String  command = gitCommand() + " ls-files -X " + gitDir + "/" + Constants.INFO_EXCLUDE + " -i | " + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-							gitCommand() + " update-index --force-remove --stdin ; " + //$NON-NLS-1$
-							gitCommand() + " commit --allow-empty -m \"" + commitMessage + "\""; //$NON-NLS-1$ //$NON-NLS-2$
-					CommandResults commandResults = this.executeRemoteCommand(command, monitor);
-					if (commandResults.getExitCode() != 0) {
-						throw new RemoteSyncException(Messages.GRSC_GitRemoveFilteredFailure1 + commandResults.getStderr());
-					}
-				} else {
-					final String  command = gitCommand() + " rev-parse HEAD"; //$NON-NLS-1$
-					CommandResults commandResults = this.executeRemoteCommand(command, monitor); 
-					ObjectId objectId = null;
-					if (commandResults.getExitCode()==0)
-						objectId = repository.resolve(commandResults.getStdout().trim());
-					RevTree ref=null;
-					try {
-						if (objectId!=null)
-							ref = new RevWalk(repository).parseTree(objectId);
-					} catch (Exception e){
-						//ignore. Can happen if the local repo doesn't yet have the remote commit
-					}
-					if (ref!=null) {
-						Set<String> filesToRemove = fileFilter.getIgnoredFiles(ref);
-						deleteRemoteFiles(filesToRemove,monitor);
-					}
-				}
-				syncConfig.setProperty(GitSyncFileFilter.REMOTE_FILTER_IS_DIRTY, "FALSE"); //$NON-NLS-1$
-				try {
-					SyncConfigManager.saveConfigs(project);
-				} catch (CoreException e) {
-					Activator.log(Messages.GitRemoteSyncConnection_19 + project.getName(), e);
-				}
-			}
-			
-		    final String command = gitCommand() + " ls-files -X " + gitDir + "/" + Constants.INFO_EXCLUDE + " -o -m | " + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					gitCommand() + " update-index --add --remove --stdin ; " + //$NON-NLS-1$
-					gitCommand() + " commit -m \"" + commitMessage + "\""; //$NON-NLS-1$ //$NON-NLS-2$
-			CommandResults commandResults = this.executeRemoteCommand(command, monitor);
-			if (commandResults.getExitCode() != 0 && !commandResults.getStdout().contains("nothing to commit")) { //$NON-NLS-1$
-				throw new RemoteSyncException(Messages.GRSC_GitCommitFailure + commandResults.getStderr());
-			}
-		} catch (final InterruptedException e) {
-			throw new RemoteSyncException(e);
-		} catch (RemoteConnectionException e) {
-			throw new RemoteSyncException(e);
-		} catch (IOException e) {
-			throw new RemoteSyncException(e);
-		} catch (CoreException e) {
-			throw new RemoteSyncException(e);
-		} catch (RemoteExecutionException e) {
-			throw new RemoteSyncException(e);
-		} finally {
-			if (monitor != null) {
-				monitor.done();
-			}
-		}
-	}
-	
-    /*
-     * Do a "git rm --cached -f <Files>" on the remote host
-     */
-    private void deleteRemoteFiles(Set<String> filesToDelete, IProgressMonitor monitor) throws IOException,
-                    RemoteExecutionException, RemoteSyncException, MissingConnectionException {
-    	try {
-    		while (!filesToDelete.isEmpty()) {
-    			List<String> commandList = stringToList(gitCommand() + " rm --cached -f --"); //$NON-NLS-1$ 
-    			int count = 1;
-    			//the MAX_FILES trick could be avoided by sending files to stdin instead of passing as arguments
-    			for (String fileName : filesToDelete.toArray(new String[0])) {
-    				if (count++ % MAX_FILES == 0) {
-    					break;
-    				}
-    				commandList.add(fileName);
-    				filesToDelete.remove(fileName);
-    			}
-
-    			CommandResults commandResults = null;
-    			try {
-    				commandResults = this.executeRemoteCommand(commandList, monitor);
-    			} catch (final InterruptedException e) {
-    				throw new RemoteExecutionException(e);
-    			} catch (RemoteConnectionException e) {
-    				throw new RemoteExecutionException(e);
-    			}
-    			if (commandResults.getExitCode() != 0) {
-    				throw new RemoteExecutionException(Messages.GRSC_GitRmFailure + commandResults.getStderr());
-    			}
-    		}
-    	} finally {
-    		if (monitor != null) {
-    			monitor.done();
-    		}
-    	}
-    }
-
-    private List<String> stringToList(String command) {
-            return new ArrayList<String>(Arrays.asList(command.split(" "))); //$NON-NLS-1$
-    }
-
-
-	// Subclass JGit's generic RemoteSession to set up running of remote
-	// commands using the available process builder.
-	public class PTPSession implements RemoteSession {
-		private final URIish uri;
-
-		public PTPSession(URIish uri) {
-			this.uri = uri;
-		}
-
-		@Override
-		public Process exec(String command, int timeout) throws TransportException {
-			// TODO: Use a library for command splitting.
-			List<String> commandList = new LinkedList<String>();
-			commandList.add("sh"); //$NON-NLS-1$
-			commandList.add("-c"); //$NON-NLS-1$
-			commandList.add(command);
-
-			try {
-				IRemoteConnection connection = syncConfig.getRemoteConnection();
-				if (!connection.isOpen()) {
-					connection.open(null);
-				}
-				return (AbstractRemoteProcess) connection.getRemoteServices().getProcessBuilder(connection, commandList).start();
-			} catch (IOException e) {
-				throw new TransportException(uri, e.getMessage(), e);
-			} catch (RemoteConnectionException e) {
-				throw new TransportException(uri, e.getMessage(), e);
-			} catch (MissingConnectionException e) {
-				throw new TransportException(uri, Messages.GitRemoteSyncConnection_3 + e.getConnectionName(), e);
-			}
-
-		}
-
-		@Override
-		public void disconnect() {
-			// Nothing to do
-		}
-	}
-
-	/**
-	 * Creates the transport object that JGit uses for executing commands
-	 * remotely.
-	 * 
-	 * @param remoteConfig
-	 *            the remote configuration for our local Git repo
-	 * @throws RuntimeException
-	 *             if the requested transport is not supported by JGit.
-	 */
-	private void buildTransport(RemoteConfig remoteConfig, IProgressMonitor monitor) {
-		RecursiveSubMonitor subMon = RecursiveSubMonitor.convert(monitor, 10);
-		final URIish uri = buildURI();
-		try {
-			subMon.subTask(Messages.GitRemoteSyncConnection_8);
-			transport = (TransportGitSsh) Transport.open(git.getRepository(), uri);
-		} catch (NotSupportedException e) {
-			throw new RuntimeException(e);
-		} catch (TransportException e) {
-			throw new RuntimeException(e);
-		} finally {
-			if (monitor != null) {
-				monitor.done();
-			}
-		}
-
-		// Set the transport to use our own means of executing remote commands.
-		transport.setSshSessionFactory(new SshSessionFactory() {
-			@Override
-			public RemoteSession getSession(URIish uri, CredentialsProvider credentialsProvider, FS fs, int tms)
-					throws TransportException {
-				return new PTPSession(uri);
-			}
-		});
-
-		transport.applyConfig(remoteConfig);
-	}
-
-	/**
-	 * Build the URI for the remote host as needed by the transport. Since the
-	 * transport will use an external SSH session, we do not need to provide
-	 * user, host, or password. However, the function for opening a transport
-	 * throws an exception if the host is null or empty length. So we set it to
-	 * a dummy string.
-	 * 
-	 * @return URIish
-	 */
-	private URIish buildURI() {
-		return new URIish()
-		// .setUser(connection.getUsername())
-				.setHost("none") //$NON-NLS-1$
-				// .setPass("")
-				.setScheme("ssh") //$NON-NLS-1$
-				.setPath(syncConfig.getLocation(project) + "/" + gitDir); //$NON-NLS-1$  // Should use remote path seperator but
-																			// first 315720 has to be fixed
-	}
-
-	public void close() {
-		transport.close();
-		git.getRepository().close();
-	}
-
-	/**
-	 * Commit files in working directory. Get the files to be added or removed, call the add and remove commands, and then commit
-	 * if needed.
-	 * 
-	 * @throws RemoteSyncException
-	 *             on problems committing.
-	 * @return whether any changes were committed
-	 */
-	private boolean doCommit(IProgressMonitor monitor) throws RemoteSyncException {
-		RecursiveSubMonitor subMon = RecursiveSubMonitor.convert(monitor, 100);
-		
-		boolean addedOrRemovedFiles = false;
-
-		try {
-			DiffFiles diffFiles = fileFilter.getDiffFiles();
-			
-			subMon.subTask(Messages.GitRemoteSyncConnection_9);
-			if (!diffFiles.added.isEmpty()) {
-				final AddCommand addCommand = git.add();
-				//Bug 401161 doesn't matter here because files are already filtered anyhow. It would be OK
-				//if the tree iterator would always return false in isEntryIgnored
-				addCommand.setWorkingTreeIterator(new SyncFileTreeIterator(git.getRepository(), fileFilter));
-				for (String fileName : diffFiles.added) {
-					addCommand.addFilepattern(fileName);
-				}
-				addCommand.call();
-				addedOrRemovedFiles = true;
-			}
-			subMon.worked(10);
-
-			subMon.subTask(Messages.GitRemoteSyncConnection_10);
-			if (!diffFiles.removed.isEmpty()) {
-				final RmCommand rmCommand = new RmCommand(git.getRepository());
-				rmCommand.setCached(true);
-				for (String fileName : diffFiles.removed) {
-					rmCommand.addFilepattern(fileName);
-				}
-				rmCommand.call();
-				addedOrRemovedFiles = true;
-			}
-			subMon.worked(10);
-
-			// Check if a commit is required.
-			subMon.subTask(Messages.GitRemoteSyncConnection_11);
-			if (addedOrRemovedFiles || inMergeState()) {
-				final CommitCommand commitCommand = git.commit();
-				commitCommand.setMessage(commitMessage);
-				commitCommand.call();
-				return true;
-			} else {
-				return false;
-			}
-		} catch (final GitAPIException e) {
-			throw new RemoteSyncException(e);
-		} catch (IOException e) {
-			throw new RemoteSyncException(e);
-		} finally {
-			if (monitor != null) {
-				monitor.done();
-			}
-		}
-	}
-
-	// Is the repository currently in a merge state?
-	private boolean inMergeState() throws IOException {
-		try {
-			if (git.getRepository().resolve("MERGE_HEAD") == null) { //$NON-NLS-1$
-				return false;
-			} else {
-				return true;
-			}
-		} catch (AmbiguousObjectException e) {
-			// Should never happen...
-			Activator.log(e);
-			return true;
-		}
-	}
-
-	// Get the list of merge-conflicted files from jgit and parse each one, storing result in the cache.
-	private void readMergeConflictFiles() throws RemoteSyncException {
-		String repoPath = git.getRepository().getWorkTree().getAbsolutePath();
-		if (!repoPath.endsWith(java.io.File.separator)) { // The documentation does not say if the separator is added...
-			repoPath += java.io.File.separator;
-		}
-
-		FileToMergePartsMap.clear();
-		mergeMapInitialized = true;
-
-		RevWalk walk = null;
-		try {
-			if (!git.getRepository().getRepositoryState().equals(RepositoryState.MERGING))
-				return;
-			
-			StatusCommand statusCommand = git.status();
-			Status status = statusCommand.call();
-			if (status.getConflicting().isEmpty()) {
-				return;
-			}
-
-			walk = new RevWalk(git.getRepository());
-			// Get the head, merge head, and merge base commits
-			walk.setRevFilter(RevFilter.MERGE_BASE);
-			ObjectId headSHA = git.getRepository().resolve("HEAD"); //$NON-NLS-1$
-			ObjectId mergeHeadSHA = git.getRepository().resolve("MERGE_HEAD"); //$NON-NLS-1$
-			RevCommit head = walk.parseCommit(headSHA);
-			RevCommit mergeHead = walk.parseCommit(mergeHeadSHA);
-			walk.markStart(head);
-			walk.markStart(mergeHead);
-			RevCommit mergeBase = walk.next();
-
-			// For each merge-conflicted file, pull out and store its contents for each of the three commits
-			// Would be much faster to use a treewalk and check whether entry is conflicting instead of using
-			// status (which uses a treewalk) and then searching for those status found.
-			for (String s : status.getConflicting()) {
-				String localContents = ""; //$NON-NLS-1$
-				TreeWalk localTreeWalk = TreeWalk.forPath(git.getRepository(), s, head.getTree());
-				if (localTreeWalk != null) {
-					ObjectId localId = localTreeWalk.getObjectId(0);
-					localContents = new String(git.getRepository().open(localId).getBytes());
-				}
-
-				String remoteContents = ""; //$NON-NLS-1$
-				TreeWalk remoteTreeWalk = TreeWalk.forPath(git.getRepository(), s, mergeHead.getTree());
-				if (remoteTreeWalk != null) {
-					ObjectId remoteId = remoteTreeWalk.getObjectId(0);
-					remoteContents = new String(git.getRepository().open(remoteId).getBytes());
-				}
-
-				String ancestorContents = ""; //$NON-NLS-1$
-				if (mergeBase != null) {
-					TreeWalk ancestorTreeWalk = TreeWalk.forPath(git.getRepository(), s, mergeBase.getTree());
-					if (ancestorTreeWalk != null) {
-						ObjectId ancestorId = ancestorTreeWalk.getObjectId(0);
-						ancestorContents = new String(git.getRepository().open(ancestorId).getBytes());
-					}
-				}
-
-				String[] mergeParts = { localContents, remoteContents, ancestorContents };
-				FileToMergePartsMap.put(new Path(s), mergeParts);
-			}
-		} catch (IOException e) {
-			throw new RemoteSyncException(e);
-		} catch (GitAPIException e) {
-			throw new RemoteSyncException(e);
-		} finally {
-			if (walk != null) {
-				walk.dispose();
-			}
-		}
-	}
-
-	/**
-	 * @return the project
-	 */
-	public IProject getProject() {
-		return project;
-	}
-
-	/**
-	 * @return the connection (IRemoteConnection)
-	 * @throws MissingConnectionException
-	 */
-	public IRemoteConnection getConnection() throws MissingConnectionException {
-		return syncConfig.getRemoteConnection();
-	}
-
-	/**
-	 * @return the localDirectory
-	 */
-	public String getLocalDirectory() {
-		return localDirectory;
-	}
-
-	/**
-	 * @return the remoteDirectory
-	 */
-	public String getRemoteDirectory() {
-		return syncConfig.getLocation(project);
-	}
-
-	/**
-	 * Many of the listed exceptions appear to be unrecoverable, caused by
-	 * errors in the initial setup. It is vital, though, that failed syncs are
-	 * reported and handled. So all exceptions are checked exceptions, embedded
-	 * in a RemoteSyncException.
-	 * 
-	 * @param monitor
-	 * @throws RemoteSyncException
-	 *             for various problems sync'ing. The specific exception is
-	 *             nested within the RemoteSyncException. 
-	 *             TODO: Consider possible platform dependency.
-	 */
-	public void syncLocalToRemote(IProgressMonitor monitor) throws RemoteSyncException {
-		RecursiveSubMonitor subMon = RecursiveSubMonitor.convert(monitor, 10);
-		subMon.subTask(Messages.GitRemoteSyncConnection_sync_local_to_remote);
-		try {
-			// First commit changes to the local repository.
-			doCommit(subMon.newChild(1));
-
-			// Then push them to the remote site.
-			try {
-				// TODO: we currently need to do this always because we don't keep track of failed commits. We first need to decide
-				// whether we want to do commits based on delta or (as currently) based on git searching modified files
-				// Than we can either keep track of deltas not transported yet or we can compare SHA-numbers (HEAD to remote-ref
-				// from last pull) to see whether something needs to be transported
-				// Than we can also get rid of this hack to check for existence of master
-				if (git.branchList().call().size() > 0) { // check whether master was already created
-					transport.push(new EclipseGitProgressTransformer(subMon.newChild(5)), null);
-
-					// Now remotely merge changes with master branch
-					CommandResults mergeResults;
-					final String command = gitCommand() + " merge " + remotePushBranch; //$NON-NLS-1$
-
-					mergeResults = this.executeRemoteCommand(command, subMon.newChild(5));
-
-					if (mergeResults.getExitCode() != 0) {
-						throw new RemoteSyncException(new RemoteExecutionException(Messages.GRSC_GitMergeFailure
-								+ mergeResults.getStderr()));
-					}
-				}
-			} catch (final IOException e) {
-				throw new RemoteSyncException(e);
-			} catch (final InterruptedException e) {
-				throw new RemoteSyncException(e);
-			} catch (RemoteConnectionException e) {
-				throw new RemoteSyncException(e);
-			} catch (GitAPIException e) {
-				throw new RemoteSyncException(e);
-			} catch (MissingConnectionException e) {
-				// nothing to do
-			}
-		} finally {
-			if (monitor != null) {
-				monitor.done();
-			}
-		}
-	}
-
-	/**
-	 * @param monitor
-	 * @throws RemoteSyncException
-	 *             for various problems sync'ing. The specific exception is
-	 *             nested within the RemoteSyncException. Many of the listed
-	 *             exceptions appear to be unrecoverable, caused by errors in
-	 *             the initial setup. It is vital, though, that failed syncs are
-	 *             reported and handled. So all exceptions are checked
-	 *             exceptions, embedded in a RemoteSyncException.
-	 */
-	public void syncRemoteToLocal(IProgressMonitor monitor, boolean includeUntrackedFiles) throws RemoteSyncException {
-
-		// TODO: Figure out why pull doesn't work and why we have to fetch and
-		// merge instead.
-		// PullCommand pullCommand = gitConnection.getGit().pull().
-		// try {
-		// pullCommand.call();
-		// } catch (WrongRepositoryStateException e) {
-		// throw new RemoteSyncException(e);
-		// } catch (InvalidConfigurationException e) {
-		// throw new RemoteSyncException(e);
-		// } catch (DetachedHeadException e) {
-		// throw new RemoteSyncException(e);
-		// } catch (InvalidRemoteException e) {
-		// throw new RemoteSyncException(e);
-		// } catch (CanceledException e) {
-		// throw new RemoteSyncException(e);
-		// }
-		RecursiveSubMonitor subMon = RecursiveSubMonitor.convert(monitor, 10);
-		subMon.subTask(Messages.GitRemoteSyncConnection_sync_remote_to_local);
-		try {
-			commitRemoteFiles(subMon.newChild(5));
-			// Next, fetch the remote repository
-			// TODO: we currently need to do this always because we don't keep track of failed commits. We first need to decide
-			// whether we want to do commits based on delta or (as currently) based on git searching modified files
-			// Than we can either keep track of deltas not transported yet or we can compare SHA-numbers (HEAD to remote-ref from
-			// last pull) to see whether something needs to be transported
-			transport.fetch(new EclipseGitProgressTransformer(subMon.newChild(5)), null);
-
-			// Now merge. Before merging we set the head for merging to master.
-			Ref remoteMasterRef = git.getRepository().getRef("refs/remotes/" + remoteProjectName + "/master"); //$NON-NLS-1$ //$NON-NLS-2$
-
-			final MergeCommand mergeCommand = git.merge().include(remoteMasterRef);
-
-			mergeCommand.call();
-		} catch (TransportException e) {
-			if (e.getMessage().startsWith("Remote does not have ")) { //$NON-NLS-1$
-				// just means that the remote branch isn't set up yet (and thus nothing too fetch). Can be ignored.
-			} else {
-				throw new RemoteSyncException(e);
-			}
-		} catch (IOException e) {
-			throw new RemoteSyncException(e);
-		} catch (GitAPIException e) {
-			throw new RemoteSyncException(e);
-		} catch (MissingConnectionException e) {
-			// nothing to do
-		} finally {
-			if (monitor != null) {
-				monitor.done();
-			}
-		}
-	}
-
-	/**
-	 * Set the file filter used. This method allows file filtering behavior to be changed after instance is created, which is
-	 * necessary to support user changes to the filter.
-	 * 
-	 * @param sff
-	 */
-	public void setFileFilter(AbstractSyncFileFilter sff) {
-		fileFilter = (GitSyncFileFilter)sff;
-	}
-
-	/**
-	 * Synchronize local and remote repositories. Currently, this function just interleaves the work of "syncLocalToRemote" and
-	 * "syncRemoteToLocal". Doing both simultaneously, though, gives room for more efficient code later. (See "syncInternal"
-	 * for the actual implementation.)
-	 * 
-	 * Note that the remote is fetched and merged first. This is on purpose so that merge conflicts will occur locally, where
-	 * they can be more easily managed. Previously, "syncLocalToRemote" was called first in "AbstractSynchronizeService", which
-	 * would
-	 * cause merge conflicts to occur remotely.
-	 * 
-	 * 
-	 * @param monitor
-	 * @param includeUntrackedFiles
-	 *            Should currently untracked remote files be added to the repository?
-	 * @throws RemoteSyncException
-	 *             for various problems sync'ing. The specific exception is
-	 *             nested within the RemoteSyncException. Many of the listed
-	 *             exceptions appear to be unrecoverable, caused by errors in
-	 *             the initial setup. It is vital, though, that failed syncs are
-	 *             reported and handled. So all exceptions are checked
-	 *             exceptions, embedded in a RemoteSyncException.
-	 */
-	public void sync(IProgressMonitor monitor, boolean includeUntrackedFiles) throws RemoteSyncException {
-		RecursiveSubMonitor subMon = RecursiveSubMonitor.convert(monitor, 100);
-		try {
-			// Commit local and remote changes
-			subMon.subTask(Messages.GitRemoteSyncConnection_12);
-			doCommit(subMon.newChild(5));
-			subMon.subTask(Messages.GitRemoteSyncConnection_14);
-			commitRemoteFiles(subMon.newChild(18));
-
-			try {
-				// Fetch the remote repository
-				subMon.subTask(Messages.GitRemoteSyncConnection_15);
-				transport.fetch(new EclipseGitProgressTransformer(subMon.newChild(18)), null);
-
-				// Merge it with local
-				subMon.subTask(Messages.GitRemoteSyncConnection_16);
-				Ref remoteMasterRef = git.getRepository().getRef("refs/remotes/" + remoteProjectName + "/master"); //$NON-NLS-1$ //$NON-NLS-2$
-				final MergeCommand mergeCommand = git.merge().include(remoteMasterRef);
-				mergeCommand.call();
-
-				// Handle merge conflict. Read in data needed to resolve the conflict, and then reset the repo.
-				readMergeConflictFiles();
-				if (!FileToMergePartsMap.isEmpty()) {
-					throw new RemoteSyncMergeConflictException(Messages.GitRemoteSyncConnection_2);
-					// Even if we later decide not to throw an exception, it is important not to proceed after a merge conflict.
-					// return;
-				}
-			} catch (TransportException e) {
-				if (e.getMessage().startsWith("Remote does not have ")) { //$NON-NLS-1$
-					// Means that the remote branch isn't set up yet (and thus nothing to fetch). Can be ignored and local to
-					// remote sync can proceed.
-					// Note: It is important, though, that we do not merge if fetch fails. Merge will fail because remote ref is
-					// not created.
-				} else {
-					throw new RemoteSyncException(e);
-				}
-			} finally {
-				subMon.setWorkRemaining(100 - 64);
-			}
-
-			// Push local repository to remote
-			if (git.branchList().call().size() > 0) { // check whether master was already created
-				subMon.subTask(Messages.GitRemoteSyncConnection_17);
-				transport.push(new EclipseGitProgressTransformer(subMon.newChild(18)), null);
-
-				// Now remotely merge changes with master branch
-				CommandResults mergeResults;
-				// ff-only prevents accidental corruption of the remote repository but is supported only in recent Git versions.
-				// final String command = gitCommand + " merge --ff-only " + remotePushBranch; //$NON-NLS-1$
-				final String command = gitCommand() + " merge " + remotePushBranch; //$NON-NLS-1$
-
-				subMon.subTask(Messages.GitRemoteSyncConnection_18);
-				mergeResults = this.executeRemoteCommand(command, subMon.newChild(18));
-				if (mergeResults.getExitCode() != 0) {
-					throw new RemoteSyncException(new RemoteExecutionException(Messages.GRSC_GitMergeFailure
-							+ mergeResults.getStderr()));
-				}
-			}
-		} catch (final IOException e) {
-			throw new RemoteSyncException(e);
-		} catch (final InterruptedException e) {
-			throw new RemoteSyncException(e);
-		} catch (RemoteConnectionException e) {
-			throw new RemoteSyncException(e);
-		} catch (GitAPIException e) {
-			throw new RemoteSyncException(e);
-		} catch (MissingConnectionException e) {
-			// nothing to do
-		} finally {
-			if (monitor != null) {
-				monitor.done();
-			}
-		}
-	}
-
-	/**
-	 * Get the merge-conflicted files
-	 * 
-	 * @return set of project-relative paths of merge-conflicted files.
-	 * @throws RemoteSyncException
-	 *             on problems accessing repository
-	 */
-	public Set<IPath> getMergeConflictFiles() throws RemoteSyncException {
-		if (!mergeMapInitialized) {
-			this.readMergeConflictFiles();
-		}
-		return FileToMergePartsMap.keySet();
-	}
-
-	/**
-	 * Return three strings representing the three parts of the given merge-conflicted file (local, remote, and ancestor,
-	 * respectively)
-	 * or null if the given file is not in a merge conflict.
-	 * 
-	 * @param localFile
-	 * @return the three parts or null
-	 * @throws RemoteSyncException
-	 *             on problems accessing repository
-	 */
-	public String[] getMergeConflictParts(IFile localFile) throws RemoteSyncException {
-		if (!mergeMapInitialized) {
-			this.readMergeConflictFiles();
-		}
-		return FileToMergePartsMap.get(localFile.getProjectRelativePath());
-	}
-
-	/**
-	 * Add the path to the repository, resolving the merge conflict (if any)
-	 * 
-	 * @param path
-	 */
-	public void setMergeAsResolved(IPath[] paths) throws RemoteSyncException {
-		AddCommand addCommand = git.add();
-		for (IPath p : paths) {
-			addCommand.addFilepattern(p.toString());
-		}
-		try {
-			addCommand.call();
-			// Make sure each file is no longer conflicted before marking as resolved.
-			// Sometimes JGit will silently fail to add.
-			StatusCommand statusCommand = git.status();
-			Status status = statusCommand.call();
-			for (IPath p : paths) {
-				if (!(status.getConflicting().contains(p.toString()))) {
-					FileToMergePartsMap.remove(p);
-				}
-			}
-		} catch (GitAPIException e) {
-			throw new RemoteSyncException(e);
-		}
-	}
-
-	public int getRemoteGitVersion(IProgressMonitor monitor) throws IOException, RemoteExecutionException, RemoteSyncException,
-			MissingConnectionException {
-		String command = gitCommand() + " --version"; //$NON-NLS-1$
-		CommandResults commandResults = null;
-
-		try {
-			// Skip class execute function, which attempts to run the command in the remote directory.
-			// (This directory may not yet exist, since reading the Git version is one of the first operations.)
-			IRemoteConnection conn = syncConfig.getRemoteConnection();
-			commandResults = CommandRunner.executeRemoteCommand(conn, command, null, monitor);
-		} catch (final InterruptedException e) {
-			throw new RemoteExecutionException(e);
-		} catch (RemoteConnectionException e) {
-			throw new RemoteExecutionException(e);
-		} finally {
-			if (monitor != null) {
-				monitor.done();
-			}
-		}
-
-		if (commandResults.getExitCode() != 0) {
-			throw new RemoteExecutionException(Messages.GRSC_GitInitFailure + commandResults.getStderr());
-		}
-
-		Matcher m = Pattern.compile("git version ([0-9]+)\\.([0-9]+)\\.([0-9]+)\\.?([0-9]*)").matcher(commandResults.getStdout().trim()); //$NON-NLS-1$
-
-		if (m.matches()) {
-			int patch=0;
-			if (m.group(4).length()>0) patch=Integer.parseInt(m.group(4));
-			return Integer.parseInt(m.group(1)) * 1000000 + Integer.parseInt(m.group(2)) * 10000 + Integer.parseInt(m.group(3)) * 100 + patch;
-		} else {
-			return 0;
-		}
-	}
-
-	/**
-	 * Replace given file with the most recent version in the repository
-	 * 
-	 * @param path
-	 * @throws RemoteSyncException
-	 */
-	public void checkout(IPath[] paths) throws RemoteSyncException {
-		CheckoutCommand checkoutCommand = git.checkout();
-		for (IPath p : paths) {
-			checkoutCommand.addPath(p.toString());
-		}
-		checkoutCommand.setStartPoint("HEAD"); //$NON-NLS-1$
-		try {
-			checkoutCommand.call();
-		} catch (GitAPIException e) {
-			throw new RemoteSyncException(e);
-		}
-
-		doRefresh(project, null);
-	}
-
-	/**
-	 * Replace given file with the most recent local copy of the remote (not necessarily the same as the current remote)
-	 * 
-	 * @param path
-	 * @throws RemoteSyncException
-	 */
-	public void checkoutRemoteCopy(IPath[] paths) throws RemoteSyncException {
-		CheckoutCommand checkoutCommand = git.checkout();
-		for (IPath p : paths) {
-			checkoutCommand.addPath(p.toString());
-		}
-		checkoutCommand.setStartPoint("refs/remotes/" + remoteProjectName + "/master"); //$NON-NLS-1$ //$NON-NLS-2$
-		try {
-			checkoutCommand.call();
-		} catch (GitAPIException e) {
-			throw new RemoteSyncException(e);
-		}
-
-		doRefresh(project, null);
-	}
-
-	// Refresh the workspace after creating new local files
-	// Bug 374409 - run refresh in a separate thread to avoid possible deadlock from locking both the sync lock and the
-	// workspace lock.
-	private static Thread doRefresh(final IProject project, final IProgressMonitor subMon) {
-		Thread refreshWorkspaceThread = new Thread(new Runnable() {
-			@Override
-			public void run() {
-				try {
-					project.refreshLocal(IResource.DEPTH_INFINITE, subMon);
-				} catch (CoreException e) {
-					Activator.log(Messages.GitRemoteSyncConnection_0, e);
-				}
-			}
-		}, "Refresh workspace thread"); //$NON-NLS-1$
-		refreshWorkspaceThread.start();
-		return refreshWorkspaceThread;
-	}
-
-	private CommandResults executeRemoteCommand(String command, IProgressMonitor monitor) throws RemoteSyncException, IOException,
-			InterruptedException, RemoteConnectionException, MissingConnectionException {
-		IRemoteConnection conn = syncConfig.getRemoteConnection();
-		String remoteDirectory = syncConfig.getLocation(project);
-		return CommandRunner.executeRemoteCommand(conn, command, remoteDirectory, monitor);
-	}
-
-	private CommandResults executeRemoteCommand(List<String> command, IProgressMonitor monitor) throws RemoteSyncException,
-			IOException, InterruptedException, RemoteConnectionException, MissingConnectionException {
-		IRemoteConnection conn = syncConfig.getRemoteConnection();
-		String remoteDirectory = syncConfig.getLocation(project);
-		return CommandRunner.executeRemoteCommand(conn, command, remoteDirectory, monitor);
-	}
-
-	// Get the base git command for this system, includes the git binary plus sync-specific arguments.
-	private String gitCommand() {
-		String gitBinary = "git"; //$NON-NLS-1$
-		IScopeContext context = InstanceScope.INSTANCE;
-		Preferences prefSyncNode = context.getNode(instanceScopeSyncNode);
-		if (prefSyncNode == null) {
-			Activator.log(Messages.GitRemoteSyncConnection_28);
-		} else {
-			try {
-				// Avoid creating node if it doesn't exist
-				if (prefSyncNode.nodeExists(GIT_LOCATION_NODE_NAME)) {
-					Preferences prefGitNode = prefSyncNode.node(GIT_LOCATION_NODE_NAME);
-					gitBinary = prefGitNode.get(syncConfig.getRemoteConnection().getName(), "git"); //$NON-NLS-1$
-				}
-			} catch (BackingStoreException e) {
-				Activator.log(Messages.GitRemoteSyncConnection_29, e);
-			} catch (MissingConnectionException e) {
-				// nothing to do
-			}
-		}
-
-		return gitBinary + " " + gitArgs; //$NON-NLS-1$
-	}
-}
\ No newline at end of file
diff --git a/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/GitRepo.java b/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/GitRepo.java
new file mode 100644
index 0000000..c01f378
--- /dev/null
+++ b/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/GitRepo.java
@@ -0,0 +1,435 @@
+/*******************************************************************************
+ * Copyright (c) 2013 The University of Tennessee and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    John Eblen - initial implementation
+ *******************************************************************************/
+package org.eclipse.ptp.internal.rdt.sync.git.core;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.eclipse.core.filesystem.EFS;
+import org.eclipse.core.filesystem.IFileStore;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.preferences.IScopeContext;
+import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.eclipse.jgit.lib.Constants;
+import org.eclipse.jgit.lib.ObjectId;
+import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.revwalk.RevTree;
+import org.eclipse.jgit.revwalk.RevWalk;
+import org.eclipse.ptp.internal.rdt.sync.git.core.CommandRunner.CommandResults;
+import org.eclipse.ptp.internal.rdt.sync.git.core.messages.Messages;
+import org.eclipse.ptp.rdt.sync.core.RecursiveSubMonitor;
+import org.eclipse.ptp.rdt.sync.core.RemoteLocation;
+import org.eclipse.ptp.rdt.sync.core.exceptions.MissingConnectionException;
+import org.eclipse.ptp.rdt.sync.core.exceptions.RemoteExecutionException;
+import org.eclipse.ptp.rdt.sync.core.exceptions.RemoteSyncException;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
+import org.osgi.service.prefs.BackingStoreException;
+import org.osgi.service.prefs.Preferences;
+
+/**
+ * Class for a "remote" (external) Git repository, a repository handled by executing C git commands on the host.
+ */
+public class GitRepo {
+	public static final String gitArgs = "--git-dir=" + GitSyncService.gitDir + " --work-tree=."; //$NON-NLS-1$ //$NON-NLS-2$
+	private static final String instanceScopeSyncNode = "org.eclipse.ptp.rdt.sync.core"; //$NON-NLS-1$
+	private static final String GIT_LOCATION_NODE_NAME = "git-location"; //$NON-NLS-1$
+	private final int MAX_FILES = 100;
+
+	private final RemoteLocation remoteLoc;
+	private int remoteGitVersion;
+
+	/**
+	 * Create a new Git repository to the specified host, initialized with the given local JGit repository.
+	 * See {@code buildRepo} for more details.
+	 *
+	 * @param rl
+	 * 				remote location information
+	 * @param monitor
+	 * @throws RemoteSyncException
+	 *             on problems building the remote repository (specific exception is nested). The instance is invalid.
+	 * @throws MissingConnectionException
+	 *             when connection missing. The instance is invalid.
+	 */
+	public GitRepo(RemoteLocation rl, IProgressMonitor monitor)
+			throws RemoteSyncException, MissingConnectionException {
+		RecursiveSubMonitor subMon = RecursiveSubMonitor.convert(monitor, 10);
+		try {
+			remoteLoc = rl;
+
+			// Build repo, creating it if it is not already present.
+			try {
+				subMon.subTask(Messages.GitRepo_0);
+				remoteGitVersion = getRemoteGitVersion(subMon.newChild(2));
+				subMon.subTask(Messages.GitRepo_1);
+				buildRepo(subMon.newChild(8));
+			} catch (final IOException e) {
+				throw new RemoteSyncException(e);
+			} catch (final RemoteExecutionException e) {
+				throw new RemoteSyncException(e);
+			}
+		} finally {
+			if (monitor != null) {
+				monitor.done();
+			}
+		}
+	}
+
+	/**
+	 * Create the Git repository - creating directories, Git-specific files, and other resources as needed.
+	 *
+	 * @param monitor
+	 *
+	 * @throws IOException
+	 *             on problems writing to the file system.
+	 * @throws RemoteExecutionException
+	 *             on failure to run remote commands.
+	 * @throws RemoteSyncException
+	 *             on problems with initial local commit. 
+	 *             TODO: Consider the consequences of exceptions that occur at various points,
+	 *             which can leave the repo in a partial state. For example, if
+	 *             the repo is created but the initial commit fails.
+	 *             TODO: Consider evaluating the output of "git init".
+	 * @throws MissingConnectionException
+	 *             on missing connection.
+	 */
+	private void buildRepo(IProgressMonitor monitor) throws IOException, RemoteExecutionException,
+	RemoteSyncException, MissingConnectionException {
+		final RecursiveSubMonitor subMon = RecursiveSubMonitor.convert(monitor, 10);
+		try {
+			// Create remote directory if necessary.
+			try {
+				subMon.subTask(Messages.GitRepo_2);
+				CommandRunner.createRemoteDirectory(remoteLoc.getConnection(), remoteLoc.getDirectory(),
+						subMon.newChild(2));
+			} catch (final CoreException e) {
+				throw new RemoteSyncException(e);
+			}
+
+			// Initialize remote directory if necessary
+			subMon.subTask(Messages.GitRepo_3);
+			doInit(subMon.newChild(8));
+		} finally {
+			if (monitor != null) {
+				monitor.done();
+			}
+		}
+	}
+
+	/**
+	 * Create and configure repository if it is not already present. Note that "git init" is "safe" on a repo already created, so
+	 * we can simply rerun it each time.
+	 * 
+	 * @param monitor
+	 *
+	 * @throws IOException
+	 * @throws RemoteExecutionException
+	 * @throws RemoteSyncException
+	 * @throws MissingConnectionException
+	 */
+	private void doInit(IProgressMonitor monitor) throws IOException, RemoteExecutionException, RemoteSyncException,
+			MissingConnectionException {
+		try {
+			String commands = "git --git-dir=" + GitSyncService.gitDir + " init && " + //$NON-NLS-1$ //$NON-NLS-2$
+					"git --git-dir=" + GitSyncService.gitDir + " config core.preloadindex true"; //$NON-NLS-1$ //$NON-NLS-2$
+			CommandResults commandResults = null;
+
+			try {
+				commandResults = this.executeRemoteCommand(commands, monitor);
+			} catch (final InterruptedException e) {
+				throw new RemoteExecutionException(e);
+			} catch (RemoteConnectionException e) {
+				throw new RemoteExecutionException(e);
+			}
+
+			if (commandResults.getExitCode() != 0) {
+				throw new RemoteExecutionException(Messages.GitRepo_5 + commandResults.getStderr());
+			}
+		} finally {
+			if (monitor != null) {
+				monitor.done();
+			}
+		}
+	}
+
+	/**
+	 * Upload the file filter from the given JGit repository
+	 *
+	 * @param localJGitRepo
+	 * @param monitor
+	 *
+	 * @throws MissingConnectionException
+	 * 			on missing connection
+	 * @throws RemoteSyncException
+	 * 			on problems executing remote commands
+	 */
+	public void uploadFilter(JGitRepo localJGitRepo, IProgressMonitor monitor) throws MissingConnectionException, RemoteSyncException {
+		final RecursiveSubMonitor subMon = RecursiveSubMonitor.convert(monitor, 10);
+		IRemoteConnection conn = remoteLoc.getConnection();
+		Repository repository = localJGitRepo.getRepository();
+
+		try {
+			//copy info/exclude to remote
+			File exclude = repository.getFS().resolve(repository.getDirectory(),
+					Constants.INFO_EXCLUDE);
+			IFileStore local = EFS.getLocalFileSystem().getStore(new Path(exclude.getAbsolutePath()));
+			String remoteExclude = remoteLoc.getDirectory() + "/" + GitSyncService.gitDir + "/" + Constants.INFO_EXCLUDE;  //$NON-NLS-1$ //$NON-NLS-2$
+			IFileStore remote = conn.getFileManager().getResource(remoteExclude);
+			subMon.subTask(Messages.GitRepo_6);
+			local.copy(remote, EFS.OVERWRITE, subMon.newChild(3));
+
+			//remove ignored files from index
+			if (remoteGitVersion>=1080102) {
+				final String  command = gitCommand() + " ls-files -X " + GitSyncService.gitDir + "/" + Constants.INFO_EXCLUDE + " -i | " + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+						gitCommand() + " update-index --force-remove --stdin ; " + //$NON-NLS-1$
+						gitCommand() + " commit --allow-empty -m \"" + GitSyncService.commitMessage + "\""; //$NON-NLS-1$ //$NON-NLS-2$
+				subMon.subTask(Messages.GitRepo_7);
+				CommandResults commandResults = this.executeRemoteCommand(command, subMon.newChild(7));
+				if (commandResults.getExitCode() != 0) {
+					throw new RemoteSyncException(Messages.GitRepo_8 + commandResults.getStderr());
+				}
+			} else {
+				final String  command = gitCommand() + " rev-parse HEAD"; //$NON-NLS-1$
+				subMon.subTask(Messages.GitRepo_9);
+				CommandResults commandResults = this.executeRemoteCommand(command, subMon.newChild(2)); 
+				ObjectId objectId = null;
+				if (commandResults.getExitCode()==0)
+					objectId = repository.resolve(commandResults.getStdout().trim());
+				RevTree ref=null;
+				try {
+					if (objectId!=null)
+						ref = new RevWalk(repository).parseTree(objectId);
+				} catch (Exception e){
+					//ignore. Can happen if the local repo doesn't yet have the remote commit
+				}
+				if (ref!=null) {
+					Set<String> filesToRemove = localJGitRepo.getFilter().getIgnoredFiles(ref);
+					subMon.subTask(Messages.GitRepo_7);
+					deleteRemoteFiles(filesToRemove,subMon.newChild(8));
+				}
+			}
+		} catch(RemoteConnectionException e) {
+			throw new RemoteSyncException(e);
+		} catch (CoreException e) {
+			throw new RemoteSyncException(e);
+		} catch (IOException e) {
+			throw new RemoteSyncException(e);
+		} catch (InterruptedException e) {
+			throw new RemoteSyncException(e);
+		} catch (RemoteExecutionException e) {
+			throw new RemoteSyncException(e);
+		}
+	}
+
+	/**
+	 * Commit changed files on the remote to the remote Git repository
+	 *
+	 * @param monitor
+	 *
+	 * @throws MissingConnectionException
+	 * 			if the connection is unresolved
+	 * @throws RemoteSyncException
+	 * 			on problems executing the necessary remote commands.
+	 */
+	public void commitRemoteFiles(IProgressMonitor monitor) throws MissingConnectionException, RemoteSyncException {
+		try {
+			final String command = gitCommand() + " ls-files -X " + GitSyncService.gitDir + "/" + Constants.INFO_EXCLUDE + " -o -m | " + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+					gitCommand() + " update-index --add --remove --stdin ; " + //$NON-NLS-1$
+					gitCommand() + " commit -m \"" + GitSyncService.commitMessage + "\""; //$NON-NLS-1$ //$NON-NLS-2$
+			CommandResults commandResults = this.executeRemoteCommand(command, monitor);
+			if (commandResults.getExitCode() != 0 && !commandResults.getStdout().contains("nothing to commit")) { //$NON-NLS-1$
+				throw new RemoteSyncException(Messages.GitRepo_11 + commandResults.getStderr());
+			}
+		} catch (final InterruptedException e) {
+			throw new RemoteSyncException(e);
+		} catch (RemoteConnectionException e) {
+			throw new RemoteSyncException(e);
+		} catch (IOException e) {
+			throw new RemoteSyncException(e);
+		} catch (CoreException e) {
+			throw new RemoteSyncException(e);
+		} finally {
+			if (monitor != null) {
+				monitor.done();
+			}
+		}
+	}
+	
+    /*
+     * Do a "git rm --cached -f <Files>" on the remote host
+     */
+    private void deleteRemoteFiles(Set<String> filesToDelete, IProgressMonitor monitor) throws IOException,
+                    RemoteExecutionException, RemoteSyncException, MissingConnectionException {
+    	try {
+    		while (!filesToDelete.isEmpty()) {
+    			List<String> commandList = stringToList(gitCommand() + " rm --cached -f --"); //$NON-NLS-1$ 
+    			int count = 1;
+    			//the MAX_FILES trick could be avoided by sending files to stdin instead of passing as arguments
+    			for (String fileName : filesToDelete.toArray(new String[0])) {
+    				if (count++ % MAX_FILES == 0) {
+    					break;
+    				}
+    				commandList.add(fileName);
+    				filesToDelete.remove(fileName);
+    			}
+
+    			CommandResults commandResults = null;
+    			try {
+    				commandResults = this.executeRemoteCommand(commandList, monitor);
+    			} catch (final InterruptedException e) {
+    				throw new RemoteExecutionException(e);
+    			} catch (RemoteConnectionException e) {
+    				throw new RemoteExecutionException(e);
+    			}
+    			if (commandResults.getExitCode() != 0) {
+    				throw new RemoteExecutionException(Messages.GitRepo_12 + commandResults.getStderr());
+    			}
+    		}
+    	} finally {
+    		if (monitor != null) {
+    			monitor.done();
+    		}
+    	}
+    }
+
+    /**
+     * Merge files that have been pushed to the remote
+     *
+     * @param monitor
+     *
+     * @throws RemoteSyncException
+	 * 			on problems executing the necessary remote commands.
+	 * @throws MissingConnectionException
+	 * 			if the connection is unresolved
+     */
+    public void merge(IProgressMonitor monitor) throws RemoteSyncException, MissingConnectionException {
+		CommandResults mergeResults;
+		// ff-only prevents accidental corruption of the remote repository but is supported only in recent Git versions.
+		// final String command = gitCommand + " merge --ff-only " + remotePushBranch; //$NON-NLS-1$
+		final String command = gitCommand() + " merge " + GitSyncService.remotePushBranch; //$NON-NLS-1$
+
+		try {
+			mergeResults = this.executeRemoteCommand(command, monitor);
+			if (mergeResults.getExitCode() != 0) {
+				throw new RemoteSyncException(new RemoteExecutionException(Messages.GitRepo_13 + mergeResults.getStderr()));
+			}
+		} catch (IOException e) {
+			throw new RemoteSyncException(e);
+		} catch (InterruptedException e) {
+			throw new RemoteSyncException(e);
+		} catch (RemoteConnectionException e) {
+			throw new RemoteSyncException(e);
+		}
+    }
+
+    private List<String> stringToList(String command) {
+    	return new ArrayList<String>(Arrays.asList(command.split(" "))); //$NON-NLS-1$
+    }
+
+	// Get the base git command for this system, includes the git binary plus sync-specific arguments.
+	private String gitCommand() {
+		String gitBinary = "git"; //$NON-NLS-1$
+		IScopeContext context = InstanceScope.INSTANCE;
+		Preferences prefSyncNode = context.getNode(instanceScopeSyncNode);
+		if (prefSyncNode == null) {
+			Activator.log(Messages.GitRepo_14);
+		} else {
+			try {
+				// Avoid creating node if it doesn't exist
+				if (prefSyncNode.nodeExists(GIT_LOCATION_NODE_NAME)) {
+					Preferences prefGitNode = prefSyncNode.node(GIT_LOCATION_NODE_NAME);
+					gitBinary = prefGitNode.get(remoteLoc.getConnection().getName(), "git"); //$NON-NLS-1$
+				}
+			} catch (BackingStoreException e) {
+				Activator.log(Messages.GitRepo_15, e);
+			} catch (MissingConnectionException e) {
+				// nothing to do
+			}
+		}
+
+		return gitBinary + " " + gitArgs; //$NON-NLS-1$
+	}
+
+	/**
+	 * Get the remote location of this repository
+	 * @return remote location
+	 */
+	public RemoteLocation getRemoteLocation() {
+		return remoteLoc;
+	}
+
+	/**
+	 * Return the Git version used for this repository
+	 *
+	 * @param monitor
+	 * @return Git version as a single int in the format: MMMmmmrrr (Major, minor, and revision)
+	 *
+	 * @throws RemoteSyncException
+	 * @throws MissingConnectionException
+	 */
+	public int getRemoteGitVersion(IProgressMonitor monitor) throws RemoteSyncException, MissingConnectionException {
+		String command = gitCommand() + " --version"; //$NON-NLS-1$
+		CommandResults commandResults = null;
+
+		try {
+			// Skip class execute function, which attempts to run the command in the remote directory.
+			// (This directory may not yet exist, since reading the Git version is one of the first operations.)
+			IRemoteConnection conn = remoteLoc.getConnection();
+			commandResults = CommandRunner.executeRemoteCommand(conn, command, null, monitor);
+		} catch (final InterruptedException e) {
+			throw new RemoteSyncException(new RemoteExecutionException(e));
+		} catch (RemoteConnectionException e) {
+			throw new RemoteSyncException(new RemoteExecutionException(e));
+		} catch (IOException e) {
+			throw new RemoteSyncException(e);
+		} finally {
+			if (monitor != null) {
+				monitor.done();
+			}
+		}
+
+		if (commandResults.getExitCode() != 0) {
+			throw new RemoteSyncException(new RemoteExecutionException(Messages.GitRepo_5 + commandResults.getStderr()));
+		}
+
+		Matcher m = Pattern.compile("git version ([0-9]+)\\.([0-9]+)\\.([0-9]+)\\.?([0-9]*)").matcher(commandResults.getStdout().trim()); //$NON-NLS-1$
+
+		if (m.matches()) {
+			int patch=0;
+			if (m.group(4).length()>0) patch=Integer.parseInt(m.group(4));
+			return Integer.parseInt(m.group(1)) * 1000000 + Integer.parseInt(m.group(2)) * 10000 + Integer.parseInt(m.group(3)) * 100 + patch;
+		} else {
+			return 0;
+		}
+	}
+	
+	private CommandResults executeRemoteCommand(String command, IProgressMonitor monitor) throws RemoteSyncException, IOException,
+	InterruptedException, RemoteConnectionException, MissingConnectionException {
+		IRemoteConnection conn = remoteLoc.getConnection();
+		String remoteDirectory = remoteLoc.getDirectory();
+		return CommandRunner.executeRemoteCommand(conn, command, remoteDirectory, monitor);
+	}
+
+	private CommandResults executeRemoteCommand(List<String> command, IProgressMonitor monitor) throws RemoteSyncException,
+	IOException, InterruptedException, RemoteConnectionException, MissingConnectionException {
+		IRemoteConnection conn = remoteLoc.getConnection();
+		String remoteDirectory = remoteLoc.getDirectory();
+		return CommandRunner.executeRemoteCommand(conn, command, remoteDirectory, monitor);
+	}
+}
diff --git a/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/GitSyncFileFilter.java b/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/GitSyncFileFilter.java
index 4aa1400..99e1ed8 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/GitSyncFileFilter.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/GitSyncFileFilter.java
@@ -19,15 +19,12 @@
 import java.io.OutputStreamWriter;
 import java.text.CharacterIterator;
 import java.text.StringCharacterIterator;
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
-import java.util.Map;
 import java.util.Set;
 
-import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.Path;
 import org.eclipse.jgit.api.RmCommand;
 import org.eclipse.jgit.api.errors.GitAPIException;
 import org.eclipse.jgit.api.errors.NoFilepatternException;
@@ -37,15 +34,11 @@
 import org.eclipse.jgit.lib.Constants;
 import org.eclipse.jgit.lib.Repository;
 import org.eclipse.jgit.revwalk.RevTree;
-import org.eclipse.jgit.storage.file.FileRepositoryBuilder;
 import org.eclipse.jgit.treewalk.FileTreeIterator;
 import org.eclipse.jgit.treewalk.TreeWalk;
 import org.eclipse.jgit.treewalk.WorkingTreeIterator;
 import org.eclipse.jgit.treewalk.filter.IndexDiffFilter;
-import org.eclipse.ptp.internal.rdt.sync.git.core.messages.Messages;
 import org.eclipse.ptp.rdt.sync.core.AbstractSyncFileFilter;
-import org.eclipse.ptp.rdt.sync.core.SyncConfig;
-import org.eclipse.ptp.rdt.sync.core.SyncConfigManager;
 import org.eclipse.ptp.rdt.sync.core.SyncManager;
 
 /**
@@ -54,39 +47,7 @@
  * 
  */
 public class GitSyncFileFilter extends AbstractSyncFileFilter {
-	public static final String REMOTE_FILTER_IS_DIRTY = "remote_filter_is_dirty"; //$NON-NLS-1$
-	// Map of projects to file filters along with basic getter and setter methods. These static data and methods operate
-	// independently of the rest of the class and could be moved into a separate class if desired.
-	// Bug 371507 - Change key to local directory instead of project to support relocating projects.
-	private static Map<String, GitSyncFileFilter> pathToFilterMap = new HashMap<String, GitSyncFileFilter>();
-
-	public static GitSyncFileFilter getFilter(IProject project) {
-		GitSyncFileFilter filter = pathToFilterMap.get(project.getLocation().toString());
-		if (filter == null) {
-			try {
-				filter = new GitSyncFileFilter(GitRemoteSyncConnection.getLocalRepo(project.getLocation().toString()), project);
-				filter.loadFilter();
-				pathToFilterMap.put(project.getLocation().toString(), filter);
-			} catch (IOException e) {
-				Activator.log(Messages.GitSyncFileFilter_UnableToLoad + project.getName(), e);
-			}
-		}
-		return filter;
-	}
-
-	public static void setFilter(IProject project, AbstractSyncFileFilter filter, Repository repository) {
-		GitSyncFileFilter newGitFilter = new GitSyncFileFilter(repository, project);
-		newGitFilter.initialize(filter);
-		try {
-			newGitFilter.saveFilter();
-		} catch (IOException e) {
-			Activator.log(Messages.GitSyncFileFilter_UnableToSave + project.getName(), e);
-		}
-		pathToFilterMap.put(project.getLocation().toString(), newGitFilter);
-	}
-
-	private final Repository repository;
-	private final IProject project;
+	private final JGitRepo jgitRepo;
 
 	private static Set<Character> escapifyCharSet = new HashSet<Character>();
 	static {
@@ -164,17 +125,32 @@
 		}
 	}
 
-	GitSyncFileFilter(Repository repository, IProject project) {
-		this.repository = repository;
-		this.project = project;
+	/**
+	 * Construct a new Git file filter for the given JGit repository
+	 * @param repo
+	 * 			the JGit repository
+	 */
+	GitSyncFileFilter(JGitRepo repo) {
+		this.jgitRepo = repo;
 	}
 
-	public GitSyncFileFilter(GitSyncFileFilter filter) {
-		this.repository = filter.repository;
-		this.project = filter.project;
-		rules.addAll(filter.rules);
+	/**
+	 * Construct a new Git file filter for the given JGit repository, adding the rules from the given filter.
+	 *
+	 * @param repo
+	 * 			the JGit repository
+	 * @param filter
+	 * 			an abstract file filter 
+	 */
+	public GitSyncFileFilter(JGitRepo repo, AbstractSyncFileFilter filter) {
+		this.jgitRepo = repo;
+		this.initialize(filter);
 	}
 
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ptp.rdt.sync.core.AbstractSyncFileFilter#addPattern(java.lang.String, boolean, int)
+	 */
 	@Override
 	public void addPattern(String pattern, boolean exclude, int index) {
 		GitIgnoreRule newRule = new GitIgnoreRule(pattern, exclude);
@@ -194,6 +170,10 @@
 		rules.add(index - numRulesRemoved, newRule);
 	}
 
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ptp.rdt.sync.core.AbstractSyncFileFilter#addPattern(org.eclipse.core.resources.IResource, boolean, int)
+	 */
 	@Override
 	public void addPattern(IResource resource, boolean exclude, int index) {
 		GitIgnoreRule newRule = new GitIgnoreRule(resource, exclude);
@@ -221,9 +201,14 @@
 		}
 	}
 
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ptp.rdt.sync.core.AbstractSyncFileFilter#saveFilter()
+	 */
 	@Override
 	public void saveFilter() throws IOException {
-		File exclude = repository.getFS().resolve(repository.getDirectory(), Constants.INFO_EXCLUDE);
+		Repository repo = jgitRepo.getRepository();
+		File exclude = repo.getFS().resolve(repo.getDirectory(), Constants.INFO_EXCLUDE);
 		exclude.getParentFile().mkdirs();
 		FileOutputStream file = new FileOutputStream(exclude);
 		BufferedWriter out = new BufferedWriter(new OutputStreamWriter(file, Constants.CHARSET));
@@ -235,7 +220,7 @@
 		} finally {
 			out.close();
 		}
-		final RmCommand rmCommand = new RmCommand(repository);
+		final RmCommand rmCommand = new RmCommand(repo);
 		rmCommand.setCached(true);
 		for (String fileName : getIgnoredFiles(null)) {
 			rmCommand.addFilepattern(fileName);
@@ -247,19 +232,16 @@
 		} catch (GitAPIException e) {
 			new IOException(e);
 		}
-
-		for (SyncConfig config : SyncConfigManager.getConfigs(project)) {
-			config.setProperty(REMOTE_FILTER_IS_DIRTY, "TRUE"); //$NON-NLS-1$
-		}
-		try {
-			SyncConfigManager.saveConfigs(project);
-		} catch (CoreException e) {
-			Activator.log(Messages.GitSyncFileFilter_UnableToSaveSyncConfigs + project.getName(), e);
-		}
 	}
 
+	/**
+	 * Load filtering rules from the file system
+	 * @throws IOException
+	 * 			on problems reading from the file system
+	 */
 	public void loadFilter() throws IOException {
-		File exclude = repository.getFS().resolve(repository.getDirectory(), Constants.INFO_EXCLUDE);
+		Repository repo = jgitRepo.getRepository();
+		File exclude = repo.getFS().resolve(repo.getDirectory(), Constants.INFO_EXCLUDE);
 		if (exclude.exists()) {
 			FileInputStream in = new FileInputStream(exclude);
 			try {
@@ -279,8 +261,8 @@
 	/**
 	 * Initialize based on other filter. Adds provider dependent default.
 	 * 
-	 * @param filter
-	 *            to copy
+	 * @param fileFilter
+	 *            filter to copy
 	 */
 	public void initialize(AbstractSyncFileFilter fileFilter) {
 		if (fileFilter instanceof GitSyncFileFilter) {
@@ -293,15 +275,20 @@
 		}
 	}
 
-	/*
-	 * returns ignored files in the index
-	 * 
+	/**
+	 * Returns ignored files in the index
+	 *
 	 * @param ref reference to compute list of files for. If null use index.
+	 * 
+	 * @return set of ignored files
+	 * @throws IOException
+	 * 			on file system problems
 	 */
 	public Set<String> getIgnoredFiles(RevTree ref) throws IOException {
-		TreeWalk treeWalk = new TreeWalk(repository);
+		Repository repo = jgitRepo.getRepository();
+		TreeWalk treeWalk = new TreeWalk(repo);
 		if (ref == null) {
-			DirCache dirCache = repository.readDirCache();
+			DirCache dirCache = repo.readDirCache();
 			treeWalk.addTree(new DirCacheIterator(dirCache));
 		} else {
 			treeWalk.addTree(ref);
@@ -336,31 +323,50 @@
 		return ignoredFiles;
 	}
 
+	/**
+	 * Return the JGit repository for this filter
+	 * @return JGit repository
+	 */
+	public JGitRepo getRepo() {
+		return jgitRepo;
+	}
+
+	/**
+	 * Class for storing names of files that have changed
+	 */
 	public class DiffFiles {
 		public Set<String> added = new HashSet<String>(); // modified and added
 		public Set<String> removed = new HashSet<String>();
+		public Set<String> dirSet = new HashSet<String>(); // All non-ignored directories
 	}
 
-	/*
-	 * get all different files (modified/changed, missing/removed, untracked/added)
+	/**
+	 * Get all different files (modified/changed, missing/removed, untracked/added)
 	 * 
 	 * assumes that no files are in conflict (don't call during merge)
+	 * 
+	 * @return different files
+	 * @throws IOException
+	 * 			on file system problems
 	 */
 	public DiffFiles getDiffFiles() throws IOException {
 		final int INDEX = 0;
 		final int WORKDIR = 1;
 
-		TreeWalk treeWalk = new TreeWalk(repository);
-		treeWalk.addTree(new DirCacheIterator(repository.readDirCache()));
-		treeWalk.addTree(new FileTreeIterator(repository));
+		assert(!jgitRepo.inUnresolvedMergeState());
 
-		// don't honor ignores - we do it manual instead. Doing it all with the filter
-		// would require a WorkingTreeIteraotr which does the ignore handing correct
-		// (both directory including bugs 401161 and only using info/exclude not .gitignore)
+		Repository repo = jgitRepo.getRepository();
+		TreeWalk treeWalk = new TreeWalk(repo);
+		treeWalk.addTree(new DirCacheIterator(repo.readDirCache()));
+		treeWalk.addTree(new FileTreeIterator(repo));
+
+		// don't honor ignores - we do it manually instead. Doing it all with the filter
+		// would require a WorkingTreeIterator that does the ignore handling correctly
+		// (both directory including bugs 401161 and only using info/exclude, not .gitignore)
 		treeWalk.setFilter(new IndexDiffFilter(INDEX, WORKDIR, false));
 		DiffFiles diffFiles = new DiffFiles();
-		int ignoreDepth = Integer.MAX_VALUE; // if the current subtree is ignored - than this is the depth at which to ignoring
-												// starts
+		int ignoreDepth = Integer.MAX_VALUE; // if the current subtree is ignored - than this is the depth at which ignoring
+											 // starts
 		while (treeWalk.next()) {
 			DirCacheIterator dirCacheIterator = treeWalk.getTree(INDEX, DirCacheIterator.class);
 			String path = treeWalk.getPathString();
@@ -376,6 +382,7 @@
 				}
 				if (isSubtree) {
 					treeWalk.enterSubtree();
+					diffFiles.dirSet.add(path);
 				} else if (dirCacheIterator != null || ignoreDepth == Integer.MAX_VALUE) {
 					WorkingTreeIterator workTreeIter = treeWalk.getTree(WORKDIR, WorkingTreeIterator.class);
 					if (workTreeIter != null) {
@@ -389,23 +396,33 @@
 		return diffFiles;
 	}
 
-	// for testing. args: work folder, git folder
-	public static void main(String[] args) throws IOException {
-		final File localDir = new File(args[0]);
-		final FileRepositoryBuilder repoBuilder = new FileRepositoryBuilder();
-		File gitDirFile = new File(localDir + File.separator + args[1]);
-		Repository repository = repoBuilder.setWorkTree(localDir).setGitDir(gitDirFile).build();
-		GitSyncFileFilter filter = new GitSyncFileFilter(repository, null);
+	/**
+	 * For testing
+	 *
+	 * @param args 
+	 * 			work folder, Git folder
+	 *
+	 * @throws GitAPIException
+	 * 			on JGit-specific problems
+	 * @throws IOException
+	 * 			on file system problems
+	 */
+	public static void main(String[] args) throws IOException, GitAPIException {
+		JGitRepo jgitRepo = new JGitRepo(new Path(args[0]), null);
+		GitSyncFileFilter filter = new GitSyncFileFilter(jgitRepo);
 		filter.loadFilter();
-		// List<String> files = filter.getIgnoredFiles();
 		Set<String> files = filter.getDiffFiles().added;
 		for (String path : files) {
 			System.out.println(path);
 		}
 	}
 
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ptp.rdt.sync.core.AbstractSyncFileFilter#clone()
+	 */
 	@Override
 	public AbstractSyncFileFilter clone() {
-		return new GitSyncFileFilter(this);
+		return new GitSyncFileFilter(jgitRepo, this);
 	}
 }
diff --git a/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/GitSyncService.java b/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/GitSyncService.java
index 8687900..f19e664 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/GitSyncService.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/GitSyncService.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011 Oak Ridge National Laboratory and others.
+ * Copyright (c) 2011, 2014 Oak Ridge National Laboratory and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,33 +10,34 @@
  *******************************************************************************/
 package org.eclipse.ptp.internal.rdt.sync.git.core;
 
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
-import java.util.Collections;
 import java.util.EnumSet;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicLong;
 import java.util.concurrent.locks.ReentrantLock;
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.resources.IResourceVisitor;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
-import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.api.errors.GitAPIException;
+import org.eclipse.jgit.errors.TransportException;
 import org.eclipse.ptp.internal.rdt.sync.git.core.messages.Messages;
 import org.eclipse.ptp.rdt.sync.core.AbstractSyncFileFilter;
 import org.eclipse.ptp.rdt.sync.core.RecursiveSubMonitor;
-import org.eclipse.ptp.rdt.sync.core.SyncConfig;
+import org.eclipse.ptp.rdt.sync.core.RemoteLocation;
 import org.eclipse.ptp.rdt.sync.core.SyncFlag;
 import org.eclipse.ptp.rdt.sync.core.SyncManager;
 import org.eclipse.ptp.rdt.sync.core.exceptions.MissingConnectionException;
@@ -45,19 +46,63 @@
 import org.eclipse.ptp.rdt.sync.core.services.AbstractSynchronizeService;
 import org.eclipse.ptp.rdt.sync.core.services.ISynchronizeServiceDescriptor;
 
+/**
+ * A Git-based synchronization service for synchronized projects
+ */
 public class GitSyncService extends AbstractSynchronizeService {
-	// Simple pair class for bundling a project and build scenario.
-	// Since we use this as a key, equality testing is important.
-	// Note that we use the project location in equality testing, as this can change even though the project object stays the same.
-	private static class ProjectAndScenario {
-		private final IProject project;
-		private final SyncConfig scenario;
-		private final String projectLocation;
+	public static final String gitDir = ".ptp-sync"; //$NON-NLS-1$
+	// Name of file placed in empty directories to force sync'ing of those directories.
+	public static final String emptyDirectoryFileName = ".ptp-sync-folder"; //$NON-NLS-1$
+	public static final String commitMessage = Messages.GitSyncService_0;
+	public static final String remotePushBranch = "ptp-push"; //$NON-NLS-1$
 
-		ProjectAndScenario(IProject p, SyncConfig bs) {
-			project = p;
-			scenario = bs;
-			projectLocation = p.getLocation().toString();
+	// Implement storage of local JGit repositories and Git repositories.
+	private static final Map<IPath, JGitRepo> localDirectoryToJGitRepoMap = new HashMap<IPath, JGitRepo>();
+	private static final Map<RemoteLocation, GitRepo> remoteLocationToGitRepoMap = new HashMap<RemoteLocation, GitRepo>();
+
+	// Variables for managing sync threads
+	private static final ReentrantLock syncLock = new ReentrantLock();
+	private static final ConcurrentMap<ProjectAndRemoteLocationPair, AtomicLong> syncThreadsWaiting =
+			new ConcurrentHashMap<ProjectAndRemoteLocationPair, AtomicLong>();
+
+	// Entry indicates that the remote location has a clean (up-to-date) file filter for the project
+	private static final Set<LocalAndRemoteLocationPair> cleanFileFilterMap = new HashSet<LocalAndRemoteLocationPair>();
+
+	// Boilerplate class for IPath and RemoteLocation Pair
+	private class LocalAndRemoteLocationPair {
+		IPath localDir;
+		RemoteLocation remoteLoc;
+
+		/**
+		 * Create new pair
+		 * @param ld
+		 * 			local directory
+		 * @param rl
+		 * 			remote location
+		 */
+		public LocalAndRemoteLocationPair(IPath ld, RemoteLocation rl) {
+			localDir = ld;
+			remoteLoc = rl;
+		}
+
+		/**
+		 * Get the local directory
+		 * @return directory
+		 */
+		public IPath getLocal() {
+			return localDir;
+		}
+
+		@Override
+		public int hashCode() {
+			final int prime = 31;
+			int result = 1;
+			result = prime * result + getOuterType().hashCode();
+			result = prime * result
+					+ ((localDir == null) ? 0 : localDir.hashCode());
+			result = prime * result
+					+ ((remoteLoc == null) ? 0 : remoteLoc.hashCode());
+			return result;
 		}
 
 		@Override
@@ -71,7 +116,76 @@
 			if (getClass() != obj.getClass()) {
 				return false;
 			}
-			ProjectAndScenario other = (ProjectAndScenario) obj;
+			LocalAndRemoteLocationPair other = (LocalAndRemoteLocationPair) obj;
+			if (!getOuterType().equals(other.getOuterType())) {
+				return false;
+			}
+			if (localDir == null) {
+				if (other.localDir != null) {
+					return false;
+				}
+			} else if (!localDir.equals(other.localDir)) {
+				return false;
+			}
+			if (remoteLoc == null) {
+				if (other.remoteLoc != null) {
+					return false;
+				}
+			} else if (!remoteLoc.equals(other.remoteLoc)) {
+				return false;
+			}
+			return true;
+		}
+
+		private GitSyncService getOuterType() {
+			return GitSyncService.this;
+		}
+	}
+
+	// Boilerplate class for IProject and RemoteLocation Pair
+	private class ProjectAndRemoteLocationPair {
+		IProject project;
+		RemoteLocation remoteLoc;
+
+		/**
+		 * Create new pair
+		 * @param p
+		 * 			project
+		 * @param rl
+		 * 			remote location
+		 */
+		public ProjectAndRemoteLocationPair(IProject p, RemoteLocation rl) {
+			project = p;
+			remoteLoc = rl;
+		}
+
+		@Override
+		public int hashCode() {
+			final int prime = 31;
+			int result = 1;
+			result = prime * result + getOuterType().hashCode();
+			result = prime * result
+					+ ((project == null) ? 0 : project.hashCode());
+			result = prime * result
+					+ ((remoteLoc == null) ? 0 : remoteLoc.hashCode());
+			return result;
+		}
+
+		@Override
+		public boolean equals(Object obj) {
+			if (this == obj) {
+				return true;
+			}
+			if (obj == null) {
+				return false;
+			}
+			if (getClass() != obj.getClass()) {
+				return false;
+			}
+			ProjectAndRemoteLocationPair other = (ProjectAndRemoteLocationPair) obj;
+			if (!getOuterType().equals(other.getOuterType())) {
+				return false;
+			}
 			if (project == null) {
 				if (other.project != null) {
 					return false;
@@ -79,74 +193,139 @@
 			} else if (!project.equals(other.project)) {
 				return false;
 			}
-			if (projectLocation == null) {
-				if (other.projectLocation != null) {
+			if (remoteLoc == null) {
+				if (other.remoteLoc != null) {
 					return false;
 				}
-			} else if (!projectLocation.equals(other.projectLocation)) {
-				return false;
-			}
-			if (scenario == null) {
-				if (other.scenario != null) {
-					return false;
-				}
-			} else if (!scenario.equals(other.scenario)) {
+			} else if (!remoteLoc.equals(other.remoteLoc)) {
 				return false;
 			}
 			return true;
 		}
 
-		@Override
-		public int hashCode() {
-			final int prime = 31;
-			int result = 1;
-			result = prime * result + ((project == null) ? 0 : project.hashCode());
-			result = prime * result + ((projectLocation == null) ? 0 : projectLocation.hashCode());
-			result = prime * result + ((scenario == null) ? 0 : scenario.hashCode());
-			return result;
+		private GitSyncService getOuterType() {
+			return GitSyncService.this;
 		}
-
 	}
 
-	private boolean hasBeenSynced = false;
+	/**
+	 * Get JGit repository instance for the given project, creating it if necessary.
+	 * @param project - cannot be null
+	 * @param monitor
+	 *
+	 * @return JGit repository instance - never null
+	 * @throws RemoteSyncException
+	 * 				on problems creating the repository
+	 */
+	static JGitRepo getLocalJGitRepo(IProject project, IProgressMonitor monitor) throws RemoteSyncException {
+		IPath localDir = project.getLocation();
+		if (localDir == null) {
+			throw new RemoteSyncException(Messages.GitSyncService_17 + project.getName());
+		}
+		JGitRepo repo = localDirectoryToJGitRepoMap.get(localDir);
+		try {
+			if (repo == null) {
+				try {
+					repo = new JGitRepo(localDir, monitor);
+					localDirectoryToJGitRepoMap.put(localDir, repo);
+					setRepoFilesAsDerived(project);
+				} catch (GitAPIException e) {
+					throw new RemoteSyncException(e);
+				} catch (IOException e) {
+					throw new RemoteSyncException(e);
+				}
+			}
+		} finally {
+			if (monitor != null) {
+				monitor.done();
+			}
+		}
+		return repo;
+	}
 
-	private static final ReentrantLock syncLock = new ReentrantLock();
-	private Integer fWaitingThreadsCount = 0;
-	private Integer syncTaskId = -1; // ID for most recent synchronization task, functions as a time-stamp
-	private int finishedSyncTaskId = -1; // all synchronizations up to this ID (including it) have finished
+	/**
+	 * Get Git repository instance for given remote location, creating it if necessary.
+	 *
+	 * @param rl
+	 * 			remote location - cannot be null
+	 * @param monitor
+	 *
+	 * @return Git repo instance - is null only if connection could not be resolved.
+	 * @throws RemoteSyncException
+	 * 			on problems creating the repository
+	 */
+	static GitRepo getGitRepo(RemoteLocation rl, IProgressMonitor monitor) throws RemoteSyncException {
+		if (rl == null) {
+			throw new NullPointerException();
+		}
+		GitRepo repo = remoteLocationToGitRepoMap.get(rl);
+		try {
+			if (repo == null) {
+				RecursiveSubMonitor subMon = RecursiveSubMonitor.convert(monitor, 100);
+				subMon.subTask(Messages.GitSyncService_1);
+				try {
+					subMon.subTask(Messages.GitSyncService_2);
+					repo = new GitRepo(rl, subMon.newChild(90));
+					remoteLocationToGitRepoMap.put(rl, repo);
+				} catch (MissingConnectionException e) {
+					return null;
+				}
+			}
+		} finally {
+			if (monitor != null) {
+				monitor.done();
+			}
+		}
+		return repo;
+	}
 
-	private final Map<ProjectAndScenario, GitRemoteSyncConnection> syncConnectionMap = Collections
-			.synchronizedMap(new HashMap<ProjectAndScenario, GitRemoteSyncConnection>());
-
+	private static boolean consCalled = false;
+	/**
+	 * Create a new instance of the GitSyncService
+	 * @param descriptor
+	 * 				service descriptor
+	 */
 	public GitSyncService(ISynchronizeServiceDescriptor descriptor) {
 		super(descriptor);
+		// Constructor for each sync service should only be called once by design of synchronized projects
+		// See bug 410106
+		assert(!consCalled) : Messages.GitSyncService_3;
+		consCalled = true;
 	}
 
 	/*
 	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.rdt.sync.core.serviceproviders.ISyncServiceProvider#checkout(org.eclipse.core.resources.IProject,
-	 * org.eclipse.ptp.rdt.sync.core.SyncConfig, org.eclipse.core.runtime.IPath)
+	 * @see org.eclipse.ptp.rdt.sync.core.services.ISynchronizeService#checkout(org.eclipse.core.resources.IProject,
+	 * org.eclipse.core.runtime.IPath[])
 	 */
 	@Override
-	public void checkout(IProject project, SyncConfig syncConfig, IPath[] paths) throws RemoteSyncException {
-		GitRemoteSyncConnection fSyncConnection = this.getSyncConnection(project, syncConfig, null);
-		if (fSyncConnection != null) {
-			fSyncConnection.checkout(paths);
+	public void checkout(IProject project, IPath[] paths) throws RemoteSyncException {
+		JGitRepo repo = getLocalJGitRepo(project, null);
+		if (repo != null) {
+			try {
+				repo.checkout(paths);
+				doRefresh(project);
+			} catch (GitAPIException e) {
+				throw new RemoteSyncException(e);
+			}
 		}
 	}
 
 	/*
 	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.rdt.sync.core.serviceproviders.ISyncServiceProvider#checkoutRemote(org.eclipse.core.resources.IProject,
-	 * org.eclipse.ptp.rdt.sync.core.SyncConfig, org.eclipse.core.runtime.IPath)
+	 * @see org.eclipse.ptp.rdt.sync.core.services.ISynchronizeService#checkoutRemoteCopy(org.eclipse.core.resources.IProject,
+	 * org.eclipse.core.runtime.IPath[])
 	 */
 	@Override
-	public void checkoutRemoteCopy(IProject project, SyncConfig syncConfig, IPath[] paths) throws RemoteSyncException {
-		GitRemoteSyncConnection fSyncConnection = this.getSyncConnection(project, syncConfig, null);
-		if (fSyncConnection != null) {
-			fSyncConnection.checkoutRemoteCopy(paths);
+	public void checkoutRemoteCopy(IProject project, IPath[] paths) throws RemoteSyncException {
+		JGitRepo repo = getLocalJGitRepo(project, null);
+		if (repo != null) {
+			try {
+				repo.checkoutRemoteCopy(paths);
+				doRefresh(project);
+			} catch (GitAPIException e) {
+				throw new RemoteSyncException(e);
+			}
 		}
 	}
 
@@ -156,190 +335,85 @@
 	 * @see org.eclipse.ptp.rdt.sync.core.serviceproviders.ISyncServiceProvider#close(org.eclipse.core.resources.IProject)
 	 */
 	@Override
-	public void close(IProject project) {
-		for (Map.Entry<ProjectAndScenario, GitRemoteSyncConnection> entry : syncConnectionMap.entrySet()) {
-			if (entry.getKey().project == project) {
-				entry.getValue().close();
-			}
+	public void close(IProject project) throws RemoteSyncException {
+		JGitRepo repo = getLocalJGitRepo(project, null);
+		if (repo != null) {
+			repo.close();
 		}
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.rdt.sync.core.serviceproviders.ISyncServiceProvider#getMergeConflictFiles()
-	 */
+		/*
+		 * (non-Javadoc)
+		 * @see org.eclipse.ptp.rdt.sync.core.services.ISynchronizeService#getMergeConflictFiles(org.eclipse.core.resources.IProject)
+		 */
 	@Override
-	public Set<IPath> getMergeConflictFiles(IProject project, SyncConfig syncConfig) throws RemoteSyncException {
-		GitRemoteSyncConnection fSyncConnection = this.getSyncConnection(project, syncConfig, null);
-		if (fSyncConnection == null) {
+	public Set<IPath> getMergeConflictFiles(IProject project) throws RemoteSyncException {
+		JGitRepo repo = getLocalJGitRepo(project, null);
+		if (repo == null) {
 			return new HashSet<IPath>();
 		} else {
-			return fSyncConnection.getMergeConflictFiles();
+			try {
+				return repo.getMergeConflictFiles();
+			} catch (GitAPIException e) {
+				throw new RemoteSyncException(e);
+			} catch (IOException e) {
+				throw new RemoteSyncException(e);
+			}
 		}
 	}
 
 	/*
 	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.rdt.sync.core.serviceproviders.ISyncServiceProvider#getMergeConflictParts(org.eclipse.core.resources.IFile)
+	 * @see org.eclipse.ptp.rdt.sync.core.services.ISynchronizeService#getMergeConflictParts(org.eclipse.core.resources.IProject,
+	 * org.eclipse.core.resources.IFile)
 	 */
 	@Override
-	public String[] getMergeConflictParts(IProject project, SyncConfig syncConfig, IFile file) throws RemoteSyncException {
-		GitRemoteSyncConnection fSyncConnection = this.getSyncConnection(project, syncConfig, null);
-		if (fSyncConnection == null) {
+	public String[] getMergeConflictParts(IProject project, IFile file) throws RemoteSyncException {
+		JGitRepo repo = getLocalJGitRepo(project, null);
+		if (repo == null) {
 			return null;
 		} else {
-			return fSyncConnection.getMergeConflictParts(file);
-		}
-	}
-
-	// Return appropriate sync connection or null for configs with no sync provider or if the connection is missing.
-	// Creates a new sync connection if necessary. This function must properly maintain the map of connections and also remember
-	// to set the file filter (always, not just for new connections).
-	// TODO: Create progress monitor if passed monitor is null.
-	private synchronized GitRemoteSyncConnection getSyncConnection(IProject project, SyncConfig syncConfig, IProgressMonitor monitor)
-			throws RemoteSyncException {
-		try {
-			if (syncConfig.getSyncProviderId() == null) {
-				return null;
+			try {
+				return repo.getMergeConflictParts(file.getProjectRelativePath());
+			} catch (GitAPIException e) {
+				throw new RemoteSyncException(e);
+			} catch (IOException e) {
+				throw new RemoteSyncException(e);
 			}
-			ProjectAndScenario pas = new ProjectAndScenario(project, syncConfig);
-			if (!syncConnectionMap.containsKey(pas)) {
-				try {
-					GitRemoteSyncConnection grsc = new GitRemoteSyncConnection(project, project.getLocation().toString(),
-							syncConfig, getSyncFileFilter(project), monitor);
-					syncConnectionMap.put(pas, grsc);
-				} catch (MissingConnectionException e) {
-					return null;
-				}
-			}
-			GitRemoteSyncConnection fSyncConnection = syncConnectionMap.get(pas);
-			fSyncConnection.setFileFilter(getSyncFileFilter(project));
-			return fSyncConnection;
-		} finally {
-			if (monitor != null) {
-				monitor.done();
-			}
-		}
-	}
-
-	// Paths that the Git sync provider can ignore.
-	private boolean irrelevantPath(IProject project, IResource resource) {
-		if (SyncManager.getFileFilter(project).shouldIgnore(resource)) {
-			return true;
-		}
-
-		String path = resource.getFullPath().toString();
-		if (path.endsWith("/" + GitRemoteSyncConnection.gitDir)) { //$NON-NLS-1$
-			return true;
-		} else if (path.endsWith("/.git")) { //$NON-NLS-1$
-			return true;
-		} else if (path.endsWith("/.settings")) { //$NON-NLS-1$
-			return true;
-		} else {
-			return false;
 		}
 	}
 
 	/*
 	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.rdt.sync.core.serviceproviders.ISyncServiceProvider#setResolved(org.eclipse.core.resources.IProject,
-	 * org.eclipse.ptp.rdt.sync.core.SyncConfig, org.eclipse.core.runtime.IPath)
+	 * @see org.eclipse.ptp.rdt.sync.core.services.ISynchronizeService#setMergeAsResolved(org.eclipse.core.resources.IProject,
+	 * org.eclipse.core.runtime.IPath[])
 	 */
 	@Override
-	public void setMergeAsResolved(IProject project, SyncConfig syncConfig, IPath[] paths) throws RemoteSyncException {
-		GitRemoteSyncConnection fSyncConnection = this.getSyncConnection(project, syncConfig, null);
-		if (fSyncConnection != null) {
-			fSyncConnection.setMergeAsResolved(paths);
+	public void setMergeAsResolved(IProject project, IPath[] paths) throws RemoteSyncException {
+		JGitRepo repo = getLocalJGitRepo(project, null);
+		if (repo != null) {
+			try {
+				repo.setMergeAsResolved(paths);
+			} catch (GitAPIException e) {
+				throw new RemoteSyncException(e);
+			}
 		}
 	}
 
 	/*
 	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ptp.rdt.sync.core.serviceproviders.ISyncServiceProvider#synchronize(org.eclipse.core.resources.IProject,
-	 * org.eclipse.core.resources.IResourceDelta, org.eclipse.ptp.rdt.sync.core.SyncFileFilter,
+	 * @see org.eclipse.ptp.rdt.sync.core.services.ISynchronizeService#synchronize(org.eclipse.core.resources.IProject,
+	 * org.eclipse.ptp.rdt.sync.core.RemoteLocation, org.eclipse.core.resources.IResourceDelta,
 	 * org.eclipse.core.runtime.IProgressMonitor, java.util.EnumSet)
 	 */
 	@Override
-	public void synchronize(final IProject project, SyncConfig syncConfig, IResourceDelta delta, IProgressMonitor monitor,
+	public void synchronize(final IProject project, RemoteLocation rl, IResourceDelta delta, IProgressMonitor monitor,
 			EnumSet<SyncFlag> syncFlags) throws CoreException {
-		RecursiveSubMonitor subMon = RecursiveSubMonitor.convert(monitor, 1000);
-
-		// On first sync, place .gitignore in directories. This is useful for folders that are already present and thus are never
-		// captured by a resource add or change event. (This can happen for projects converted to sync projects.)
-		if (!hasBeenSynced) {
-			hasBeenSynced = true;
-			project.accept(new IResourceVisitor() {
-				@Override
-				public boolean visit(IResource resource) throws CoreException {
-					if (irrelevantPath(project, resource)) {
-						return false;
-					}
-					if (resource.getType() == IResource.FOLDER) {
-						IFile emptyFile = project.getFile(resource.getProjectRelativePath().addTrailingSeparator() + ".gitignore"); //$NON-NLS-1$
-						try {
-							if (!(emptyFile.exists())) {
-								emptyFile.create(new ByteArrayInputStream("".getBytes()), false, null); //$NON-NLS-1$
-							}
-						} catch (CoreException e) {
-							// Nothing to do. Can happen if another thread creates the file between the check and creation.
-						}
-					}
-					return true;
-				}
-			});
+		if (project == null || rl == null) {
+			throw new NullPointerException();
 		}
-
-		// Make a visitor that explores the delta. At the moment, this visitor is responsible for two tasks (the list may grow in
-		// the future):
-		// 1) Find out if there are any "relevant" resource changes (changes that need to be mirrored remotely)
-		// 2) Add an empty ".gitignore" file to new directories so that Git will sync them
-		class SyncResourceDeltaVisitor implements IResourceDeltaVisitor {
-			private boolean relevantChangeFound = false;
-
-			public boolean isRelevant() {
-				return relevantChangeFound;
-			}
-
-			@Override
-			public boolean visit(IResourceDelta delta) throws CoreException {
-				if (irrelevantPath(project, delta.getResource())) {
-					return false;
-				} else {
-					if ((delta.getAffectedChildren().length == 0) && (delta.getFlags() != IResourceDelta.MARKERS)) {
-						relevantChangeFound = true;
-					}
-				}
-
-				// Add .gitignore to empty directories
-				if (delta.getResource().getType() == IResource.FOLDER
-						&& (delta.getKind() == IResourceDelta.ADDED || delta.getKind() == IResourceDelta.CHANGED)) {
-					IFile emptyFile = project.getFile(delta.getResource().getProjectRelativePath().addTrailingSeparator()
-							+ ".gitignore"); //$NON-NLS-1$
-					try {
-						if (!(emptyFile.exists())) {
-							emptyFile.create(new ByteArrayInputStream("".getBytes()), false, null); //$NON-NLS-1$
-						}
-					} catch (CoreException e) {
-						// Nothing to do. Can happen if another thread creates the file between the check and creation.
-					}
-				}
-
-				return true;
-			}
-		}
-
-		// Explore delta only if it is not null
-		boolean hasRelevantChangedResources = false;
-		if (delta != null) {
-			SyncResourceDeltaVisitor visitor = new SyncResourceDeltaVisitor();
-			delta.accept(visitor);
-			hasRelevantChangedResources = visitor.isRelevant();
-		}
+		RemoteLocation remoteLoc = new RemoteLocation(rl);
+		RecursiveSubMonitor subMon = RecursiveSubMonitor.convert(monitor, 100);
 
 		try {
 			/*
@@ -358,90 +432,45 @@
 			if (syncFlags.contains(SyncFlag.DISABLE_SYNC)) {
 				return;
 			}
-			if ((syncFlags == SyncFlag.NO_FORCE) && (!(hasRelevantChangedResources))) {
-				return;
-			}
 
-			int mySyncTaskId;
-			synchronized (syncTaskId) {
-				syncTaskId++;
-				mySyncTaskId = syncTaskId;
-				// suggestion for Deltas: add delta to list of deltas
-			}
+			ProjectAndRemoteLocationPair syncTarget = new ProjectAndRemoteLocationPair(project, remoteLoc);
+		    AtomicLong threadCount = syncThreadsWaiting.get(syncTarget);
+		    if (threadCount != null && threadCount.get() > 0 && syncFlags == SyncFlag.NO_FORCE) {
+		    	return; // the queued thread will do the work for us. And we don't have to wait because of NO_FORCE
+		    }
 
-			synchronized (fWaitingThreadsCount) {
-				if (fWaitingThreadsCount > 0 && syncFlags == SyncFlag.NO_FORCE) {
-					return; // the queued thread will do the work for us. And we don't have to wait because of NO_FORCE
-				} else {
-					fWaitingThreadsCount++;
-				}
-			}
+		    // Increment the value, initializing it if necessary. See:
+		    // http://stackoverflow.com/questions/2539654/java-concurrency-many-writers-one-reader/2539761#2539761
+		    if (threadCount == null){ 
+		    	threadCount = syncThreadsWaiting.putIfAbsent(syncTarget, new AtomicLong(1)); 
+		    } 
+		    if(threadCount != null){
+		    	threadCount.incrementAndGet();      
+		    }
 
 			// lock syncLock. interruptible by progress monitor
 			try {
 				while (!syncLock.tryLock(50, TimeUnit.MILLISECONDS)) {
 					if (subMon.isCanceled()) {
-						throw new CoreException(new Status(IStatus.CANCEL, Activator.PLUGIN_ID, Messages.GitServiceProvider_1));
+						throw new CoreException(new Status(IStatus.CANCEL, Activator.PLUGIN_ID, Messages.GitSyncService_4));
 					}
 				}
 			} catch (InterruptedException e1) {
-				throw new CoreException(new Status(IStatus.CANCEL, Activator.PLUGIN_ID, Messages.GitServiceProvider_2));
+				throw new CoreException(new Status(IStatus.CANCEL, Activator.PLUGIN_ID, Messages.GitSyncService_5));
 			} finally {
-				synchronized (fWaitingThreadsCount) {
-					fWaitingThreadsCount--;
-				}
+				threadCount = syncThreadsWaiting.get(syncTarget);
+				assert(threadCount != null) : Messages.GitSyncService_19;
+				threadCount.decrementAndGet();
 			}
 
 			try {
-				// Do not sync if there are merge conflicts.
-				// This check must be done after acquiring the sync lock. Otherwise, the merge may trigger a sync that sees no
-				// conflicting files and proceeds to sync again - depending on how quickly the first sync records the data.
-				if (!(this.getMergeConflictFiles(project, syncConfig).isEmpty())) {
-					throw new RemoteSyncMergeConflictException(Messages.GitServiceProvider_4);
-				}
-
-				if (mySyncTaskId <= finishedSyncTaskId) { // some other thread has already done the work for us
-					return;
-				}
-
-				if (syncConfig == null) {
-					throw new RuntimeException(Messages.GitServiceProvider_3 + project.getName());
-				}
-
-				subMon.subTask(Messages.GitServiceProvider_7);
-				GitRemoteSyncConnection fSyncConnection = this.getSyncConnection(project, syncConfig, subMon.newChild(98));
-				if (fSyncConnection == null) {
-					// Should never happen
-					if (syncConfig.getSyncProviderId() == null) {
-						throw new RemoteSyncException(Messages.GitServiceProvider_5);
-						// Happens whenever connection does not exist
-					} else {
-						return;
-					}
-				}
-
-				// This synchronization operation will include all tasks up to current syncTaskId
-				// syncTaskId can be larger than mySyncTaskId (than we do also the work for other threads)
-				// we might synchronize even more than that if a file is already saved but syncTaskId wasn't increased yet
-				// thus we cannot guarantee a maximum but we can guarantee syncTaskId as a minimum
-				// suggestion for Deltas: make local copy of list of deltas, remove list of deltas
-				int willFinishTaskId;
-				synchronized (syncTaskId) {
-					willFinishTaskId = syncTaskId;
-				}
-
-				try {
-					subMon.subTask(Messages.GitServiceProvider_8);
-					fSyncConnection.sync(subMon.newChild(900), true);
-					// Unlike other exceptions, we need to do some post-sync activities after a merge exception.
-					// TODO: Refactor code to get rid of duplication of post-sync activities.
-				} catch (RemoteSyncMergeConflictException e) {
-					subMon.subTask(Messages.GitServiceProvider_9);
-					project.refreshLocal(IResource.DEPTH_INFINITE, subMon.newChild(1));
-					throw e;
-				}
-				finishedSyncTaskId = willFinishTaskId;
-				// TODO: review exception handling
+				subMon.subTask(Messages.GitSyncService_9);
+				doSync(project, remoteLoc, syncFlags, subMon.newChild(95));
+			} catch (RemoteSyncMergeConflictException e) {
+				subMon.subTask(Messages.GitSyncService_10);
+				// Refresh after merge conflict since conflicted files are altered with markup.
+				doRefresh(project);
+				throw e;
 			} finally {
 				syncLock.unlock();
 			}
@@ -451,8 +480,8 @@
 			SyncManager.setShowErrors(project, true);
 
 			// Refresh after sync to display changes
-			subMon.subTask(Messages.GitServiceProvider_10);
-			project.refreshLocal(IResource.DEPTH_INFINITE, subMon.newChild(1));
+			subMon.subTask(Messages.GitSyncService_10);
+			doRefresh(project);
 		} finally {
 			if (monitor != null) {
 				monitor.done();
@@ -460,22 +489,184 @@
 		}
 	}
 
-	@Override
-	public AbstractSyncFileFilter getSyncFileFilter(IProject project) {
-		return GitSyncFileFilter.getFilter(project);
-	}
-
-	@Override
-	public void setSyncFileFilter(IProject project, AbstractSyncFileFilter filter) {
-		Repository repository;
+	/**
+	 * Synchronize the given project to the given remote. Currently both directions are always synchronized.
+	 * The sync strategy follows these three high-level steps:
+	 * 1) Commit local and remote changes. These are independent operations.
+	 * 2) Fetch remote changes and merge them locally. Thus, all merge conflicts should occur locally and thus easily managed.
+	 * 3) Push local changes to remote and merge them remotely. This final merge should never fail assuming files are
+	 *    unchanged during the sync.
+	 *
+	 * @param project
+	 * 				the local project
+	 * @param remoteLoc
+	 * 				the remote location
+	 * @param syncFlags
+	 * 				flags to modify sync behavior
+	 * @param monitor
+	 * @throws RemoteSyncException
+	 *             for various problems sync'ing. All exceptions are wrapped in a RemoteSyncException and thrown, so that clients
+	 *             can always detect when a sync fails and why.
+	 */
+	private void doSync(IProject project, RemoteLocation remoteLoc, EnumSet<SyncFlag> syncFlags, IProgressMonitor monitor)
+			throws RemoteSyncException {
+		RecursiveSubMonitor subMon = RecursiveSubMonitor.convert(monitor, 100);
 		try {
-			repository = GitRemoteSyncConnection.getLocalRepo(project.getLocation().toString());
-		} catch (IOException e) {
-			Activator.log("Unable to save file filter for project " + project.getName(), e); //$NON-NLS-1$
-			return;
-		}
-		assert repository != null : Messages.GitSyncService_0;
-		GitSyncFileFilter.setFilter(project, filter, repository);
+			subMon.subTask(Messages.GitSyncService_6);
+			JGitRepo localRepo = getLocalJGitRepo(project, subMon.newChild(5));
 
+			if (localRepo.inUnresolvedMergeState()) {
+				throw new RemoteSyncMergeConflictException(Messages.GitSyncService_8);
+			}
+
+			// Commit local changes
+			subMon.subTask(Messages.GitSyncService_12);
+			boolean hasChanges = localRepo.commit(subMon.newChild(5));
+			if ((!hasChanges) && (syncFlags == SyncFlag.NO_FORCE)) {
+				return;
+			}
+
+			// Get remote repository. creating it if necessary
+			subMon.subTask(Messages.GitSyncService_7);
+			GitRepo remoteRepo = getGitRepo(remoteLoc, subMon.newChild(15));
+			// Unresolved connection - abort
+			if (remoteRepo == null) {
+				return;
+			}
+
+			// Update remote file filter
+			LocalAndRemoteLocationPair lp = new LocalAndRemoteLocationPair(localRepo.getDirectory(), remoteRepo.getRemoteLocation());
+			int commitWork = 20;
+			if (!cleanFileFilterMap.contains(lp)) {
+				commitWork -= 10;
+				subMon.subTask(Messages.GitSyncService_11);
+				remoteRepo.uploadFilter(localRepo, subMon.newChild(10));
+				cleanFileFilterMap.add(lp);
+			}
+
+			subMon.subTask(Messages.GitSyncService_13);
+			remoteRepo.commitRemoteFiles(subMon.newChild(commitWork));
+
+			try {
+				// Fetch the remote repository
+				subMon.subTask(Messages.GitSyncService_14);
+				localRepo.fetch(remoteRepo.getRemoteLocation(), subMon.newChild(20));
+
+				// Merge it with local
+				subMon.subTask(Messages.GitSyncService_15);
+				org.eclipse.jgit.api.MergeResult mergeResult = localRepo.merge(subMon.newChild(5));
+				if (mergeResult.getFailingPaths() != null) {
+					String message = Messages.GitSyncService_16;
+					for (String s : mergeResult.getFailingPaths().keySet()) {
+						message += System.getProperty("line.separator") + s; //$NON-NLS-1$
+					}
+					throw new RemoteSyncException(message);
+				}
+				if (localRepo.inUnresolvedMergeState()) {
+					throw new RemoteSyncMergeConflictException(Messages.GitSyncService_8);
+					// Even if we later decide not to throw an exception, it is important not to proceed after a merge conflict.
+					// return;
+				}
+			} catch (TransportException e) {
+				if (e.getMessage().startsWith("Remote does not have ")) { //$NON-NLS-1$
+					// Means that the remote branch isn't set up yet (and thus nothing to fetch). Can be ignored and local to
+					// remote sync can proceed.
+					// Note: It is important, though, that we do not merge if fetch fails. Merge will fail because remote ref is
+					// not created.
+				} else {
+					throw new RemoteSyncException(e);
+				}
+			} finally {
+				subMon.setWorkRemaining(100 - 70);
+			}
+
+			// Push local repository to remote
+			if (localRepo.getGit().branchList().call().size() > 0) { // check whether master was already created
+				subMon.subTask(Messages.GitSyncService_18);
+				localRepo.push(remoteRepo.getRemoteLocation(), subMon.newChild(20));
+				remoteRepo.merge(subMon.newChild(10));
+			}
+		} catch (final IOException e) {
+			throw new RemoteSyncException(e);
+		} catch (GitAPIException e) {
+			throw new RemoteSyncException(e);
+		} catch (MissingConnectionException e) {
+			// nothing to do
+		} finally {
+			if (monitor != null) {
+				monitor.done();
+			}
+		}
 	}
-}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ptp.rdt.sync.core.services.ISynchronizeService#getSyncFileFilter(org.eclipse.core.resources.IProject)
+	 */
+	@Override
+	public AbstractSyncFileFilter getSyncFileFilter(IProject project) throws RemoteSyncException {
+		return getLocalJGitRepo(project, null).getFilter();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ptp.rdt.sync.core.services.ISynchronizeService#setSyncFileFilter(org.eclipse.core.resources.IProject,
+	 * org.eclipse.ptp.rdt.sync.core.AbstractSyncFileFilter)
+	 */
+	@Override
+	public void setSyncFileFilter(IProject project, AbstractSyncFileFilter filter) throws RemoteSyncException {
+		Iterator<LocalAndRemoteLocationPair> it = cleanFileFilterMap.iterator();
+		IPath localDir = project.getLocation();
+		if (localDir == null) {
+			throw new RemoteSyncException(Messages.GitSyncService_17 + project.getName());
+		}
+		while (it.hasNext()) {
+			LocalAndRemoteLocationPair lp = it.next();
+			if (lp.getLocal().equals(localDir)) {
+				it.remove();
+			}
+		}
+		JGitRepo localRepo = getLocalJGitRepo(project, null);
+		localRepo.setFilter(filter);
+	}
+	
+    // Refresh the workspace in a separate thread
+    // Bug 374409 - this prevents deadlock caused by locking both the sync lock and the workspace lock.
+    private static Thread doRefresh(final IProject project) {
+            Thread refreshWorkspaceThread = new Thread(new Runnable() {
+                    @Override
+                    public void run() {
+                            try {
+                                    project.refreshLocal(IResource.DEPTH_INFINITE, null);
+                            } catch (CoreException e) {
+                                    Activator.log(Messages.JGitRepo_16, e);
+                            }
+                    }
+            }, "Refresh workspace thread"); //$NON-NLS-1$
+            refreshWorkspaceThread.start();
+            return refreshWorkspaceThread;
+    }
+
+   	// Set Git repository files as derived.
+	// This prevents user-level operations, such as searching, from considering the repository directory.
+    private static void setRepoFilesAsDerived(final IProject project) {
+    	// First refresh project so that files appear
+    	final Thread refreshThread = doRefresh(project);
+ 
+    	// Set derived only after refresh completes
+    	Thread setDerivedThread = new Thread(new Runnable() {
+    		@Override
+    		public void run() {
+    			try {
+    				refreshThread.join();
+    				project.getFolder(GitSyncService.gitDir).setDerived(true, null);
+    			} catch (InterruptedException e) {
+    				Activator.log(e);
+    			} catch (CoreException e) {
+    				Activator.log(e);
+    			}
+    		}
+    	}, "Set repository as derived thread"); //$NON-NLS-1$
+    	setDerivedThread.start();
+    }
+}
\ No newline at end of file
diff --git a/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/JGitRepo.java b/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/JGitRepo.java
new file mode 100644
index 0000000..96d6f68
--- /dev/null
+++ b/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/JGitRepo.java
@@ -0,0 +1,734 @@
+/*******************************************************************************
+ * Copyright (c) 2013 The University of Tennessee and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    John Eblen - initial implementation
+ *******************************************************************************/
+package org.eclipse.ptp.internal.rdt.sync.git.core;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jgit.api.AddCommand;
+import org.eclipse.jgit.api.CheckoutCommand;
+import org.eclipse.jgit.api.CommitCommand;
+import org.eclipse.jgit.api.Git;
+import org.eclipse.jgit.api.MergeCommand;
+import org.eclipse.jgit.api.MergeResult;
+import org.eclipse.jgit.api.RmCommand;
+import org.eclipse.jgit.api.Status;
+import org.eclipse.jgit.api.StatusCommand;
+import org.eclipse.jgit.api.errors.GitAPIException;
+import org.eclipse.jgit.errors.AmbiguousObjectException;
+import org.eclipse.jgit.errors.NotSupportedException;
+import org.eclipse.jgit.errors.TransportException;
+import org.eclipse.jgit.lib.ObjectId;
+import org.eclipse.jgit.lib.Ref;
+import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.lib.RepositoryState;
+import org.eclipse.jgit.lib.StoredConfig;
+import org.eclipse.jgit.revwalk.RevCommit;
+import org.eclipse.jgit.revwalk.RevWalk;
+import org.eclipse.jgit.revwalk.filter.RevFilter;
+import org.eclipse.jgit.storage.file.FileRepositoryBuilder;
+import org.eclipse.jgit.transport.CredentialsProvider;
+import org.eclipse.jgit.transport.RefSpec;
+import org.eclipse.jgit.transport.RemoteConfig;
+import org.eclipse.jgit.transport.RemoteSession;
+import org.eclipse.jgit.transport.SshSessionFactory;
+import org.eclipse.jgit.transport.Transport;
+import org.eclipse.jgit.transport.TransportGitSsh;
+import org.eclipse.jgit.transport.URIish;
+import org.eclipse.jgit.treewalk.TreeWalk;
+import org.eclipse.jgit.util.FS;
+import org.eclipse.ptp.internal.rdt.sync.git.core.GitSyncFileFilter.DiffFiles;
+import org.eclipse.ptp.internal.rdt.sync.git.core.messages.Messages;
+import org.eclipse.ptp.rdt.sync.core.AbstractSyncFileFilter;
+import org.eclipse.ptp.rdt.sync.core.RecursiveSubMonitor;
+import org.eclipse.ptp.rdt.sync.core.RemoteLocation;
+import org.eclipse.ptp.rdt.sync.core.SyncManager;
+import org.eclipse.ptp.rdt.sync.core.exceptions.MissingConnectionException;
+import org.eclipse.remote.core.AbstractRemoteProcess;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
+
+/**
+ * Class for a local Git repository managed by JGit
+ */
+public class JGitRepo {
+	public static final String remoteBranchName = "eclipse_auto"; //$NON-NLS-1$
+	public static final String EMPTY_FILE_NAME = ".ptp-sync-folder"; //$NON-NLS-1$
+
+	private IPath localDirectory;
+	private Git git;
+	private GitSyncFileFilter fileFilter = null;
+	private boolean mergeMapInitialized = false; // Call "readMergeConflictFiles" at least once before using the map.
+	private final Map<IPath, String[]> fileToMergePartsMap = new HashMap<IPath, String[]>();
+	private final Map<RemoteLocation, TransportGitSsh> remoteToTransportMap = new HashMap<RemoteLocation, TransportGitSsh>();
+
+	/**
+	 * Create a JGit repository instance for the given local directory, creating resources, such as Git-specific files, if necessary.
+	 * 
+	 * @param localDir
+	 * @param monitor
+	 *
+	 * @throws GitAPIException
+	 * 				on JGit-specific problems - instance should be considered invalid
+	 * @throws IOException
+	 * 				on file system problems - instance should be considered invalid
+	 */
+	public JGitRepo(IPath localDir, IProgressMonitor monitor) throws GitAPIException, IOException {
+		localDirectory = localDir;
+		try {
+			buildRepo(localDirectory.toOSString(), monitor);
+		} finally {
+			if (monitor != null) {
+				monitor.done();
+			}
+		}
+	}
+
+	/**
+	 * Build the JGit repository - creating resources, such as Git-specific files, if necessary.
+	 *
+	 * @param localDirectory
+	 * 			Repository location
+	 * @param monitor
+	 * @return
+	 * @throws GitAPIException
+	 * 			on JGit-specific problems
+	 * @throws IOException
+	 * 			on file system problems
+	 */
+	private Git buildRepo(String localDirectory, IProgressMonitor monitor) throws GitAPIException, IOException {
+		final RecursiveSubMonitor subMon = RecursiveSubMonitor.convert(monitor, 10);
+		try {
+			// Get local Git repository, creating it if necessary.
+			File localDir = new File(localDirectory);
+			FileRepositoryBuilder repoBuilder = new FileRepositoryBuilder();
+			File gitDirFile = new File(localDirectory + File.separator + GitSyncService.gitDir);
+			Repository repository = repoBuilder.setWorkTree(localDir).setGitDir(gitDirFile).build();
+			boolean repoExists = gitDirFile.exists();
+			if (!repoExists) {
+				repository.create(false);
+			}
+			git = new Git(repository);
+			
+			if (!repoExists) {
+				fileFilter = new GitSyncFileFilter(this, SyncManager.getDefaultFileFilter());
+				fileFilter.saveFilter();
+			} else {
+				fileFilter = new GitSyncFileFilter(this);
+				fileFilter.loadFilter();
+			}
+			subMon.worked(5);
+			
+            // An initial commit to create the master branch.
+            subMon.subTask(Messages.JGitRepo_0);
+            if (!repoExists) {
+            	commit(subMon.newChild(4));
+            } else {
+            	subMon.worked(4);
+            }
+
+			return git;
+		} finally {
+			if (monitor != null) {
+				monitor.done();
+			}
+		}
+	}
+
+	/**
+	 * Builds the remote configuration for the connection, setting up fetch and
+	 * push operations between local and remote master branches.
+	 * 
+	 * @param config
+	 *            configuration for the local repository
+	 * @return the remote configuration
+	 * @throws RuntimeException
+	 *             if the URI in the passed configuration is not properly
+	 *             formatted.
+	 */
+	private RemoteConfig buildRemoteConfig(StoredConfig config) {
+		RemoteConfig rconfig = null;
+
+		try {
+			rconfig = new RemoteConfig(config, remoteBranchName);
+		} catch (final URISyntaxException e) {
+			throw new RuntimeException(e);
+		}
+
+		final RefSpec refSpecFetch = new RefSpec("+refs/heads/master:refs/remotes/" + //$NON-NLS-1$
+				remoteBranchName + "/master"); //$NON-NLS-1$
+		final RefSpec refSpecPush = new RefSpec("+master:" + GitSyncService.remotePushBranch); //$NON-NLS-1$
+		rconfig.addFetchRefSpec(refSpecFetch);
+		rconfig.addPushRefSpec(refSpecPush);
+
+		return rconfig;
+	}
+
+	/**
+	 * Replace given files with the most recent versions in the repository
+	 * 
+	 * @param paths
+	 * 			Array of paths to checkout
+	 * @throws GitAPIException
+	 * 			on JGit-specific problems
+	 */
+	public void checkout(IPath[] paths) throws GitAPIException  {
+		CheckoutCommand checkoutCommand = git.checkout();
+		for (IPath p : paths) {
+			checkoutCommand.addPath(p.toString());
+		}
+		checkoutCommand.setStartPoint("HEAD"); //$NON-NLS-1$
+		checkoutCommand.call();
+	}
+
+	/**
+	 * Replace given files with the most recent local copies from the remote (not necessarily the same as the current remote since
+	 * no transferring of files is done)
+	 * 
+	 * @param paths
+	 * 			Array of paths to replace
+	 * @throws GitAPIException
+	 */
+	public void checkoutRemoteCopy(IPath[] paths) throws GitAPIException {
+		CheckoutCommand checkoutCommand = git.checkout();
+		for (IPath p : paths) {
+			checkoutCommand.addPath(p.toString());
+		}
+		checkoutCommand.setStartPoint("refs/remotes/" + remoteBranchName + "/master"); //$NON-NLS-1$ //$NON-NLS-2$
+		checkoutCommand.call();
+	}
+
+	/**
+	 * Commit files in working directory.
+	 * 
+	 * assumes that no files are in conflict (do not call during merge)
+	 *
+	 * @param monitor
+	 *
+	 * @return whether any changes were committed
+	 * @throws GitAPIException
+	 * 			on JGit-specific problems
+	 * @throws IOException
+	 * 			on file system problems
+	 */
+	public boolean commit(IProgressMonitor monitor) throws GitAPIException, IOException {
+		RecursiveSubMonitor subMon = RecursiveSubMonitor.convert(monitor, 10);
+		
+		boolean addedOrRemovedFiles = false;
+
+		assert(!inUnresolvedMergeState());
+		try {
+			DiffFiles diffFiles = fileFilter.getDiffFiles();
+
+			// Create and add an empty file to all synchronized directories to force sync'ing of empty directories
+			for (String dirName : diffFiles.dirSet) {
+				IPath emptyFilePath = new Path(this.getRepository().getWorkTree().getAbsolutePath());
+				emptyFilePath = emptyFilePath.append(dirName);
+				emptyFilePath = emptyFilePath.append(EMPTY_FILE_NAME);
+				File emptyFile = new File(emptyFilePath.toOSString());
+				boolean fileWasCreated = emptyFile.createNewFile();
+				if (fileWasCreated) {
+					diffFiles.added.add(emptyFilePath.toString());
+				}
+			}
+			
+			subMon.subTask(Messages.JGitRepo_2);
+			if (!diffFiles.added.isEmpty()) {
+				final AddCommand addCommand = git.add();
+				//Bug 401161 doesn't matter here because files are already filtered anyhow. It would be OK
+				//if the tree iterator would always return false in isEntryIgnored
+				addCommand.setWorkingTreeIterator(new SyncFileTreeIterator(git.getRepository(), fileFilter));
+				for (String fileName : diffFiles.added) {
+					addCommand.addFilepattern(fileName);
+				}
+				addCommand.call();
+				addedOrRemovedFiles = true;
+			}
+			subMon.worked(3);
+
+			subMon.subTask(Messages.JGitRepo_3);
+			if (!diffFiles.removed.isEmpty()) {
+				final RmCommand rmCommand = new RmCommand(git.getRepository());
+				rmCommand.setCached(true);
+				for (String fileName : diffFiles.removed) {
+					rmCommand.addFilepattern(fileName);
+				}
+				rmCommand.call();
+				addedOrRemovedFiles = true;
+			}
+			subMon.worked(3);
+
+			// Check if a commit is required.
+			subMon.subTask(Messages.JGitRepo_4);
+			if (addedOrRemovedFiles || inMergeState()) {
+				final CommitCommand commitCommand = git.commit();
+				commitCommand.setMessage(GitSyncService.commitMessage);
+				commitCommand.call();
+				return true;
+			} else {
+				return false;
+			}
+		} finally {
+			if (monitor != null) {
+				monitor.done();
+			}
+		}
+	}
+
+	/**
+	 * Fetch files from the given remote. This only transmits the files. It does not update the local repository.
+	 *
+	 * @param remoteLoc
+	 * 			remote location
+	 * @param monitor
+	 *
+	 * @throws TransportException
+	 * 			on problem transferring files
+	 */
+	public void fetch(RemoteLocation remoteLoc, IProgressMonitor monitor) throws TransportException {
+		int work = 10;
+		RecursiveSubMonitor subMon = RecursiveSubMonitor.convert(monitor, work);
+		TransportGitSsh transport = remoteToTransportMap.get(remoteLoc);
+		if (transport == null) {
+			work /= 2;
+			subMon.subTask(Messages.JGitRepo_5);
+			transport = this.buildTransport(remoteLoc, subMon.newChild(work));
+			remoteToTransportMap.put(remoteLoc, transport);
+		}
+
+		try {
+			subMon.subTask(Messages.JGitRepo_6);
+			transport.fetch(new EclipseGitProgressTransformer(subMon.newChild(work)), null);
+		} catch (NotSupportedException e) {
+			throw new RuntimeException(e);
+		}
+	}
+
+	/**
+	 * Push local repository changes to remote. (Only committed changes are pushed). Does not update the remote repository.
+	 *
+	 * @param remoteLoc
+	 * 			remote location
+	 * @param monitor
+	 *
+	 * @throws TransportException
+	 *			on problem transferring files
+	 */
+	public void push(RemoteLocation remoteLoc, IProgressMonitor monitor) throws TransportException {
+		int work = 10;
+		RecursiveSubMonitor subMon = RecursiveSubMonitor.convert(monitor, work);
+		TransportGitSsh transport = remoteToTransportMap.get(remoteLoc);
+		if (transport == null) {
+			work /= 2;
+			subMon.subTask(Messages.JGitRepo_5);
+			transport = this.buildTransport(remoteLoc, subMon.newChild(work));
+			remoteToTransportMap.put(remoteLoc, transport);
+		}
+		try {
+			subMon.subTask(Messages.JGitRepo_8);
+			transport.push(new EclipseGitProgressTransformer(subMon.newChild(work)), null);
+		} catch (NotSupportedException e) {
+			throw new RuntimeException(e);
+		}
+	}
+
+	/**
+	 * Is repository currently in a merge state, either resolved or unresolved?
+	 *
+	 * @return whether repository is in a merge state
+	 * @throws IOException
+	 */
+	public boolean inMergeState() throws IOException {
+		try {
+			if (git.getRepository().resolve("MERGE_HEAD") == null) { //$NON-NLS-1$
+				return false;
+			} else {
+				return true;
+			}
+		} catch (AmbiguousObjectException e) {
+			// Should never happen...
+			Activator.log(e);
+			return true;
+		}
+	}
+
+	/**
+	 * Is repository currently in an unresolved merge state?
+	 *
+	 * @return whether repository is in an unresolved merge state
+	 * @throws IOException
+	 */
+	public boolean inUnresolvedMergeState() throws IOException {
+		if (inMergeState() && !(git.getRepository().getRepositoryState().equals(RepositoryState.MERGING_RESOLVED))) {
+			return true;
+		} else {
+			return false;
+		}
+	}
+
+	/**
+	 * Find and parse each merge-conflicted file, storing local, remote, and ancestor versions of each file in a cache.
+	 *
+	 * @param monitor
+	 *
+	 * @return whether any merge conflicts were found
+	 * @throws GitAPIException
+	 * 			on JGit-specific problems
+	 * @throws IOException
+	 * 			on file system problems
+	 */
+	public boolean readMergeConflictFiles(IProgressMonitor monitor) throws GitAPIException, IOException {
+		RecursiveSubMonitor subMon = RecursiveSubMonitor.convert(monitor, 100);
+
+		String repoPath = git.getRepository().getWorkTree().getAbsolutePath();
+		if (!repoPath.endsWith(java.io.File.separator)) { // The documentation does not say if the separator is added...
+			repoPath += java.io.File.separator;
+		}
+
+		fileToMergePartsMap.clear();
+		mergeMapInitialized = true;
+
+		RevWalk walk = null;
+		try {
+			if (!git.getRepository().getRepositoryState().equals(RepositoryState.MERGING))
+				return false;
+
+			subMon.subTask(Messages.JGitRepo_9);
+			StatusCommand statusCommand = git.status();
+			Status status = statusCommand.call();
+			if (status.getConflicting().isEmpty()) {
+				return false;
+			}
+			subMon.worked(30);
+
+			subMon.subTask(Messages.JGitRepo_10);
+			walk = new RevWalk(git.getRepository());
+			// Get the head, merge head, and merge base commits
+			walk.setRevFilter(RevFilter.MERGE_BASE);
+			ObjectId headSHA = git.getRepository().resolve("HEAD"); //$NON-NLS-1$
+			ObjectId mergeHeadSHA = git.getRepository().resolve("MERGE_HEAD"); //$NON-NLS-1$
+			RevCommit head = walk.parseCommit(headSHA);
+			RevCommit mergeHead = walk.parseCommit(mergeHeadSHA);
+			walk.markStart(head);
+			walk.markStart(mergeHead);
+			RevCommit mergeBase = walk.next();
+			subMon.worked(30);
+
+			// For each merge-conflicted file, pull out and store its contents for each of the three commits
+			// Would be much faster to use a treewalk and check whether entry is conflicting instead of using
+			// status (which uses a treewalk) and then searching for those status found.
+			subMon.subTask(Messages.JGitRepo_11);
+			for (String s : status.getConflicting()) {
+				String localContents = ""; //$NON-NLS-1$
+				TreeWalk localTreeWalk = TreeWalk.forPath(git.getRepository(), s, head.getTree());
+				if (localTreeWalk != null) {
+					ObjectId localId = localTreeWalk.getObjectId(0);
+					localContents = new String(git.getRepository().open(localId).getBytes());
+				}
+
+				String remoteContents = ""; //$NON-NLS-1$
+				TreeWalk remoteTreeWalk = TreeWalk.forPath(git.getRepository(), s, mergeHead.getTree());
+				if (remoteTreeWalk != null) {
+					ObjectId remoteId = remoteTreeWalk.getObjectId(0);
+					remoteContents = new String(git.getRepository().open(remoteId).getBytes());
+				}
+
+				String ancestorContents = ""; //$NON-NLS-1$
+				if (mergeBase != null) {
+					TreeWalk ancestorTreeWalk = TreeWalk.forPath(git.getRepository(), s, mergeBase.getTree());
+					if (ancestorTreeWalk != null) {
+						ObjectId ancestorId = ancestorTreeWalk.getObjectId(0);
+						ancestorContents = new String(git.getRepository().open(ancestorId).getBytes());
+					}
+				}
+
+				String[] mergeParts = { localContents, remoteContents, ancestorContents };
+				fileToMergePartsMap.put(new Path(s), mergeParts);
+			}
+			subMon.worked(40);
+		} finally {
+			if (walk != null) {
+				walk.dispose();
+			}
+			if (monitor != null) {
+				monitor.done();
+			}
+		}
+		return fileToMergePartsMap.isEmpty();
+	}
+
+	/**
+	 * Get the local directory for this repository (an absolute path)
+	 * @return directory
+	 */
+	public IPath getDirectory() {
+		return localDirectory;
+	}
+
+	/**
+	 * Get the file filter for this repository
+	 * @return filter
+	 */
+	public GitSyncFileFilter getFilter() {
+		return fileFilter;
+	}
+
+	/**
+	 * Get the Git instance for this repository
+	 * @return Git instance
+	 */
+	public Git getGit() {
+		return git;
+	}
+
+	/**
+	 * Get the real JGit repository
+	 * @return repository
+	 */
+	public Repository getRepository() {
+		return git.getRepository();
+	}
+
+	/**
+	 * Get the set of merge-conflicted files
+	 * 
+	 * @return set of relative (to localDirectory) paths of merge-conflicted files.
+	 * @throws GitAPIException
+	 * 			on JGit-specific problems
+	 * @throws IOException
+	 * 			on file system problems 
+	 */
+	public Set<IPath> getMergeConflictFiles() throws GitAPIException, IOException {
+		if (!mergeMapInitialized) {
+			this.readMergeConflictFiles(null);
+		}
+		return fileToMergePartsMap.keySet();
+	}
+
+	/**
+	 * Return three strings representing the three parts of the given merge-conflicted file (local, remote, and ancestor,
+	 * respectively) or null if the given file is not in a merge conflict.
+	 * 
+	 * @param localFile
+	 * 				Must be a relative path to the file from the repository
+	 * @return the three parts or null
+	 * @throws GitAPIException
+	 * 			on JGit-specific problems
+	 * @throws IOException
+	 * 			on file system problems 
+	 */
+	public String[] getMergeConflictParts(IPath localFile) throws GitAPIException, IOException {
+		if (!mergeMapInitialized) {
+			this.readMergeConflictFiles(null);
+		}
+		return fileToMergePartsMap.get(localFile);
+	}
+
+	/**
+	 * Merge changes previously fetched from a remote repository
+	 *
+	 * @param monitor
+	 *
+	 * @return merge results
+	 * @throws GitAPIException
+	 * 			on JGit-specific problems
+	 * @throws IOException
+	 * 			on file system problems 
+	 */
+	public MergeResult merge(IProgressMonitor monitor) throws IOException, GitAPIException {
+		RecursiveSubMonitor subMon = RecursiveSubMonitor.convert(monitor, 10);
+		try {
+		Ref remoteMasterRef = git.getRepository().
+				getRef("refs/remotes/" + remoteBranchName + "/master"); //$NON-NLS-1$ //$NON-NLS-2$
+		final MergeCommand mergeCommand = git.merge().include(remoteMasterRef);
+		subMon.subTask(Messages.JGitRepo_12);
+		return mergeCommand.call();
+		} finally {
+			if (monitor != null) {
+				monitor.done();
+			}
+		}
+	}
+
+	/**
+	 * Set filter for this repository
+	 *
+	 * @param filter
+	 */
+	public void setFilter(AbstractSyncFileFilter filter) {
+        fileFilter = new GitSyncFileFilter(this);
+        fileFilter.initialize(filter);
+        try {
+                fileFilter.saveFilter();
+        } catch (IOException e) {
+                Activator.log(Messages.JGitRepo_13 + localDirectory, e);
+        }
+	}
+
+	/**
+	 * Add the given path to the repository, resolving the merge conflict (if any)
+	 * 
+	 * @param paths
+	 * @throws GitAPIException
+	 * 			on JGit-specific problems
+	 */
+	public void setMergeAsResolved(IPath[] paths) throws GitAPIException {
+		AddCommand addCommand = git.add();
+		for (IPath p : paths) {
+			addCommand.addFilepattern(p.toString());
+		}
+		addCommand.call();
+		// Make sure each file is no longer conflicted before marking as resolved.
+		// Sometimes JGit will silently fail to add.
+		StatusCommand statusCommand = git.status();
+		Status status = statusCommand.call();
+		for (IPath p : paths) {
+			if (!(status.getConflicting().contains(p.toString()))) {
+				fileToMergePartsMap.remove(p);
+			}
+		}
+	}
+
+	// Subclass JGit's generic RemoteSession to run commands using the remote location's process builder
+	private class PTPSession implements RemoteSession {
+		private final RemoteLocation remoteLoc;
+		private final URIish uri;
+
+		/**
+		 * Build new session instance for the given remote location
+		 * @param remoteLoc
+		 */
+		public PTPSession(RemoteLocation remoteLoc) {
+			this.remoteLoc = remoteLoc;
+			this.uri = buildURI(remoteLoc.getDirectory());
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * @see org.eclipse.jgit.transport.RemoteSession#exec(java.lang.String, int)
+		 */
+		@Override
+		public Process exec(String command, int timeout) throws TransportException {
+			// TODO: Use a library for command splitting.
+			List<String> commandList = new LinkedList<String>();
+			commandList.add("sh"); //$NON-NLS-1$
+			commandList.add("-c"); //$NON-NLS-1$
+			commandList.add(command);
+
+			try {
+				IRemoteConnection connection = remoteLoc.getConnection();
+				if (!connection.isOpen()) {
+					connection.open(null);
+				}
+				return (AbstractRemoteProcess) connection.getProcessBuilder(commandList).start();
+			} catch (IOException e) {
+				throw new TransportException(uri, e.getMessage(), e);
+			} catch (RemoteConnectionException e) {
+				throw new TransportException(uri, e.getMessage(), e);
+			} catch (MissingConnectionException e) {
+				throw new TransportException(uri, Messages.JGitRepo_14 + e.getConnectionName(), e);
+			}
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * @see org.eclipse.jgit.transport.RemoteSession#disconnect()
+		 */
+		@Override
+		public void disconnect() {
+			// Nothing to do
+		}
+	}
+
+	/**
+	 * Creates a new transport object for executing commands at the given remote location.
+	 * 
+	 * @param remoteLocation
+	 *				the remote location
+	 *            
+	 * @return new transport instance - never null.
+	 * @throws TransportException
+	 *				on problem creating transport
+	 * @throws RuntimeException
+	 *				if the requested transport is not supported by JGit.
+	 */
+	private TransportGitSsh buildTransport(final RemoteLocation remoteLoc, IProgressMonitor monitor) throws TransportException {
+		RecursiveSubMonitor subMon = RecursiveSubMonitor.convert(monitor, 10);
+		RemoteConfig remoteConfig = buildRemoteConfig(git.getRepository().getConfig());
+		final URIish uri = buildURI(remoteLoc.getDirectory());
+		TransportGitSsh transport;
+		try {
+			subMon.subTask(Messages.JGitRepo_15);
+			transport = (TransportGitSsh) Transport.open(git.getRepository(), uri);
+		} catch (NotSupportedException e) {
+			throw new RuntimeException(e);
+		} finally {
+			if (monitor != null) {
+				monitor.done();
+			}
+		}
+
+		// Set the transport to use our own means of executing remote commands.
+		transport.setSshSessionFactory(new SshSessionFactory() {
+			@Override
+			public RemoteSession getSession(URIish uri, CredentialsProvider credentialsProvider, FS fs, int tms)
+					throws TransportException {
+				return new PTPSession(remoteLoc);
+			}
+		});
+
+		transport.applyConfig(remoteConfig);
+		return transport;
+	}
+
+	/**
+	 * Build the URI for the remote host as needed by the transport. Since the
+	 * transport will use an external SSH session, we do not need to provide
+	 * user, host, or password. However, the function for opening a transport
+	 * throws an exception if the host is null or empty length. So we set it to
+	 * a dummy string.
+	 * 
+	 * @return URIish
+	 */
+	private URIish buildURI(String directory) {
+		return new URIish()
+		// .setUser(connection.getUsername())
+				.setHost("none") //$NON-NLS-1$
+				// .setPass("")
+				.setScheme("ssh") //$NON-NLS-1$
+				.setPath(directory + "/" + GitSyncService.gitDir); //$NON-NLS-1$  // Should use remote path seperator but first
+		                                                                          // 315720 has to be fixed
+	}
+
+	/**
+	 * Releases all resources allocated by this JGit repository instance, including closing all transport objects and closing the
+	 * repository itself. Instance should not be used after calling this method.
+	 */
+	public void close() {
+		for (TransportGitSsh t : remoteToTransportMap.values()) {
+			t.close();
+		}
+		remoteToTransportMap.clear();
+		git.getRepository().close();
+		git = null;
+		fileFilter = null;
+		fileToMergePartsMap.clear();
+	}
+}
\ No newline at end of file
diff --git a/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/messages/Messages.java b/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/messages/Messages.java
index d79ac17..f7e9039 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/messages/Messages.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/messages/Messages.java
@@ -15,65 +15,64 @@
 @SuppressWarnings("javadoc")
 public class Messages extends NLS {
 	private static final String BUNDLE_NAME = "org.eclipse.ptp.internal.rdt.sync.git.core.messages.messages"; //$NON-NLS-1$
-	public static String GRSC_CommitMessage;
-	public static String GRSC_GitAddFailure;
-	public static String GRSC_GitCommitFailure;
-	public static String GRSC_GitInitFailure;
-	public static String GRSC_GitLsFilesFailure;
-	public static String GRSC_GitMergeFailure;
-	public static String GRSC_GitRemoveFilteredFailure1;
-	public static String GRSC_GitRmFailure;
-	public static String GSP_ChangeConnectionError;
-	public static String GSP_ChangeLocationError;
-	public static String GitRemoteSyncConnection_0;
-	public static String GitRemoteSyncConnection_1;
-	public static String GitRemoteSyncConnection_10;
-	public static String GitRemoteSyncConnection_11;
-	public static String GitRemoteSyncConnection_12;
-	public static String GitRemoteSyncConnection_13;
-	public static String GitRemoteSyncConnection_14;
-	public static String GitRemoteSyncConnection_15;
-	public static String GitRemoteSyncConnection_16;
-	public static String GitRemoteSyncConnection_17;
-	public static String GitRemoteSyncConnection_18;
+	public static String GitRepo_0;
+	public static String GitRepo_1;
+	public static String GitRepo_11;
+	public static String GitRepo_12;
+	public static String GitRepo_13;
+	public static String GitRepo_14;
+	public static String GitRepo_15;
+	public static String GitRepo_2;
+	public static String GitRepo_3;
+	public static String GitRepo_4;
+	public static String GitRepo_5;
+	public static String GitRepo_6;
+	public static String GitRepo_7;
+	public static String GitRepo_8;
+	public static String GitRepo_9;
 	public static String GitRemoteSyncConnection_19;
-	public static String GitRemoteSyncConnection_2;
-	public static String GitRemoteSyncConnection_20;
-	public static String GitRemoteSyncConnection_21;
-	public static String GitRemoteSyncConnection_22;
-	public static String GitRemoteSyncConnection_23;
-	public static String GitRemoteSyncConnection_24;
-	public static String GitRemoteSyncConnection_25;
-	public static String GitRemoteSyncConnection_26;
-	public static String GitRemoteSyncConnection_27;
-	public static String GitRemoteSyncConnection_28;
-	public static String GitRemoteSyncConnection_29;
-	public static String GitRemoteSyncConnection_3;
-	public static String GitRemoteSyncConnection_4;
-	public static String GitRemoteSyncConnection_5;
-	public static String GitRemoteSyncConnection_6;
-	public static String GitRemoteSyncConnection_7;
-	public static String GitRemoteSyncConnection_8;
-	public static String GitRemoteSyncConnection_9;
-	public static String GitRemoteSyncConnection_sync_local_to_remote;
-	public static String GitRemoteSyncConnection_sync_remote_to_local;
-	public static String GitServiceProvider_1;
-	public static String GitServiceProvider_10;
-	public static String GitServiceProvider_2;
-	public static String GitServiceProvider_3;
-	public static String GitServiceProvider_4;
-	public static String GitServiceProvider_5;
-	public static String GitServiceProvider_7;
-	public static String GitServiceProvider_8;
-	public static String GitServiceProvider_9;
 	public static String GitSyncFileFilter_UnableToLoad;
 	public static String GitSyncFileFilter_UnableToSave;
 	public static String GitSyncFileFilter_UnableToSaveSyncConfigs;
 	public static String GitSyncService_0;
+	public static String GitSyncService_1;
+	public static String GitSyncService_10;
+	public static String GitSyncService_11;
+	public static String GitSyncService_12;
+	public static String GitSyncService_13;
+	public static String GitSyncService_14;
+	public static String GitSyncService_15;
+	public static String GitSyncService_16;
+	public static String GitSyncService_17;
+	public static String GitSyncService_18;
+	public static String GitSyncService_19;
+	public static String GitSyncService_2;
+	public static String GitSyncService_3;
+	public static String GitSyncService_4;
+	public static String GitSyncService_5;
+	public static String GitSyncService_6;
+	public static String GitSyncService_7;
+	public static String GitSyncService_8;
+	public static String GitSyncService_9;
 	public static String CommandRunner_0;
 	public static String CommandRunner_1;
 	public static String CommandRunner_3;
 	public static String CommandRunner_4;
+	public static String JGitRepo_0;
+	public static String JGitRepo_10;
+	public static String JGitRepo_11;
+	public static String JGitRepo_12;
+	public static String JGitRepo_13;
+	public static String JGitRepo_14;
+	public static String JGitRepo_15;
+	public static String JGitRepo_16;
+	public static String JGitRepo_2;
+	public static String JGitRepo_3;
+	public static String JGitRepo_4;
+	public static String JGitRepo_5;
+	public static String JGitRepo_6;
+	public static String JGitRepo_8;
+	public static String JGitRepo_9;
 
 	static {
 		// initialize resource bundle
diff --git a/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/messages/messages.properties b/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/messages/messages.properties
index a3dfd73..54b1389 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/messages/messages.properties
+++ b/rdt/org.eclipse.ptp.rdt.sync.git.core/src/org/eclipse/ptp/internal/rdt/sync/git/core/messages/messages.properties
@@ -9,62 +9,61 @@
 #     University of Tennessee (Roland Schulz) - initial API and implementation
 ###############################################################################
 
-GRSC_CommitMessage=Eclipse Automatic Commit
-GRSC_GitAddFailure=remote git add failed with message: 
-GRSC_GitCommitFailure=remote git commit failed with message: 
-GRSC_GitInitFailure=remote git init failed with message: 
-GRSC_GitLsFilesFailure=remote git ls-files failed with message: 
-GRSC_GitMergeFailure=Remote merge failed with message: 
-GRSC_GitRemoveFilteredFailure1=remote git remove filtered files command failed
-GRSC_GitRmFailure=remote git rm failed with message: 
-GSP_ChangeConnectionError=Changing of remote connection is not supported.
-GSP_ChangeLocationError=Changing of remote location is not supported.
-GitRemoteSyncConnection_0=Unable to refresh workspace
-GitRemoteSyncConnection_1=Retrieve local Git repository
-GitRemoteSyncConnection_10=Removing files
-GitRemoteSyncConnection_11=Committing changes
-GitRemoteSyncConnection_12=Committing local changes
-GitRemoteSyncConnection_13=Preparing remote for commit
-GitRemoteSyncConnection_14=Committing remote changes
-GitRemoteSyncConnection_15=Fetching remote changes
-GitRemoteSyncConnection_16=Merging changes locally
-GitRemoteSyncConnection_17=Pushing local changes to remote
-GitRemoteSyncConnection_18=Merging changes remotely
+GitRepo_0=Reading remote Git version
+GitRepo_1=Building remote repository
+GitRepo_11=Remote Git commit failed with message: 
+GitRepo_12=Remote Git rm failed with message: 
+GitRepo_13=Remote merge failed with message: 
+GitRepo_14=Unable to access node for storing instance-specific settings
+GitRepo_15=Unable to load Git location settings
+GitRepo_2=Creating remote directory
+GitRepo_3=Initializing remote
+GitRepo_4=Committing remote files
+GitRepo_5=Remote Git init failed with message: 
+GitRepo_6=Copy file filtering information to remote
+GitRepo_7=Updating remote file filtering
+GitRepo_8=Remote Git failed to remove filtered files with message: 
+GitRepo_9=Retrieving remote Git revision ID
 GitRemoteSyncConnection_19=Unable to save sync configurations for project 
-GitRemoteSyncConnection_2=Merge conflict
-GitRemoteSyncConnection_20=Building remote repository
-GitRemoteSyncConnection_21=Reading remote Git version
-GitRemoteSyncConnection_22=Initial commit of local files
-GitRemoteSyncConnection_23=Refreshing workspace
-GitRemoteSyncConnection_24=Creating remote directory
-GitRemoteSyncConnection_25=initializing remote
-GitRemoteSyncConnection_26=Preparing remote for commit
-GitRemoteSyncConnection_27=Committing remote files
-GitRemoteSyncConnection_28=Unable to access node for storing instance-specific settings
-GitRemoteSyncConnection_29=Unable to load Git location settings
-GitRemoteSyncConnection_3=Missing connection: 
-GitRemoteSyncConnection_4=Building transport mechanism
-GitRemoteSyncConnection_5=Reading file status
-GitRemoteSyncConnection_6=Adding files
-GitRemoteSyncConnection_7=Deleting files
-GitRemoteSyncConnection_8=Open transport
-GitRemoteSyncConnection_9=Adding files
-GitRemoteSyncConnection_sync_local_to_remote=Sync local to remote...
-GitRemoteSyncConnection_sync_remote_to_local=Sync remote to local...
-GitServiceProvider_1=Synchronization canceled
-GitServiceProvider_10=Refreshing workspace
-GitServiceProvider_2=Synchronization interrupted
-GitServiceProvider_3=Unable to find build scenario for project: 
-GitServiceProvider_4=Merge conflict
-GitServiceProvider_5=Attempt to sync a configuration which has sync disabled
-GitServiceProvider_7=Preparing remote for sync
-GitServiceProvider_8=Synchronizing
-GitServiceProvider_9=Refreshing workspace
 GitSyncFileFilter_UnableToLoad=Unable to load file filter for project 
 GitSyncFileFilter_UnableToSave=Unable to save file filter for project 
 GitSyncFileFilter_UnableToSaveSyncConfigs=Unable to save sync configurations for project 
-GitSyncService_0=Internal error - created local Git repository is null
+GitSyncService_0=Eclipse Automatic Commit
+GitSyncService_1=Accessing local JGit repository
+GitSyncService_10=Refreshing workspace
+GitSyncService_11=Updating remote file filter
+GitSyncService_12=Committing local changes
+GitSyncService_13=Committing remote changes
+GitSyncService_14=Fetching remote changes
+GitSyncService_15=Merging remote changes
+GitSyncService_16=Merge failed for the following files (modified during sync?):
+GitSyncService_17=Unable to resolve location of project: 
+GitSyncService_18=Pushing local changes to remote
+GitSyncService_19=Missing sync thread waiting count that should have already been initialized.
+GitSyncService_2=Creating remote Git repository
+GitSyncService_3=Internal error - Git sync service constructor called more than once
+GitSyncService_4=Synchronization canceled
+GitSyncService_5=Synchronization interrupted
+GitSyncService_6=Retrieving local JGit repository
+GitSyncService_7=Retrieving remote Git repository
+GitSyncService_8=Merge conflict
+GitSyncService_9=Synchronizing
 CommandRunner_0=Remote execution canceled
 CommandRunner_1=Cannot create instances of static class CommandRunner
-CommandRunner_3=Running command
+CommandRunner_3=Running...
 CommandRunner_4=Opening connection
+JGitRepo_0=Initial commit of local files
+JGitRepo_10=Merge conflicts found - preparing to read
+JGitRepo_11=Reading merge-conflicted files
+JGitRepo_12=Merging remote changes
+JGitRepo_13=Unable to save file filter for project directory: 
+JGitRepo_14=Missing connection: 
+JGitRepo_15=Opening transport mechanism
+JGitRepo_16=Unable to refresh workspace
+JGitRepo_2=Adding files
+JGitRepo_3=Removing files
+JGitRepo_4=Committing changes
+JGitRepo_5=Building connection to remote
+JGitRepo_6=Fetching remote changes
+JGitRepo_8=Pushing local changes to remote
+JGitRepo_9=Checking repository status
diff --git a/rdt/org.eclipse.ptp.rdt.sync.git.ui/META-INF/MANIFEST.MF b/rdt/org.eclipse.ptp.rdt.sync.git.ui/META-INF/MANIFEST.MF
index 79fa6d6..c86bf01 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.git.ui/META-INF/MANIFEST.MF
+++ b/rdt/org.eclipse.ptp.rdt.sync.git.ui/META-INF/MANIFEST.MF
@@ -10,8 +10,8 @@
  org.eclipse.ptp.rdt.sync.core,
  org.eclipse.ptp.rdt.sync.ui,
  org.eclipse.ptp.rdt.sync.git.core,
- org.eclipse.ptp.remote.core,
- org.eclipse.ptp.remote.ui
+ org.eclipse.remote.core,
+ org.eclipse.remote.ui
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: %pluginProvider
diff --git a/rdt/org.eclipse.ptp.rdt.sync.git.ui/pom.xml b/rdt/org.eclipse.ptp.rdt.sync.git.ui/pom.xml
index fb9789c..897eed6 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.git.ui/pom.xml
+++ b/rdt/org.eclipse.ptp.rdt.sync.git.ui/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rdt/org.eclipse.ptp.rdt.sync.git.ui/src/org/eclipse/ptp/internal/rdt/sync/git/ui/GitParticipant.java b/rdt/org.eclipse.ptp.rdt.sync.git.ui/src/org/eclipse/ptp/internal/rdt/sync/git/ui/GitParticipant.java
index 6910c84..d989de2 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.git.ui/src/org/eclipse/ptp/internal/rdt/sync/git/ui/GitParticipant.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.git.ui/src/org/eclipse/ptp/internal/rdt/sync/git/ui/GitParticipant.java
@@ -13,24 +13,22 @@
 
 import java.net.URI;
 
-import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.jface.operation.IRunnableContext;
 import org.eclipse.jface.wizard.IWizardContainer;
 import org.eclipse.ptp.internal.rdt.sync.git.ui.messages.Messages;
-import org.eclipse.ptp.rdt.sync.core.services.ISynchronizeService;
 import org.eclipse.ptp.rdt.sync.ui.AbstractSynchronizeParticipant;
 import org.eclipse.ptp.rdt.sync.ui.ISynchronizeParticipant;
 import org.eclipse.ptp.rdt.sync.ui.ISynchronizeParticipantDescriptor;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIConnectionManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIConstants;
-import org.eclipse.ptp.remote.ui.IRemoteUIFileManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIServices;
-import org.eclipse.ptp.remote.ui.RemoteUIServices;
-import org.eclipse.ptp.remote.ui.widgets.RemoteConnectionWidget;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.ui.IRemoteUIConnectionManager;
+import org.eclipse.remote.ui.IRemoteUIConstants;
+import org.eclipse.remote.ui.IRemoteUIFileManager;
+import org.eclipse.remote.ui.IRemoteUIServices;
+import org.eclipse.remote.ui.RemoteUIServices;
+import org.eclipse.remote.ui.widgets.RemoteConnectionWidget;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
@@ -174,7 +172,7 @@
 		// projectName = ((CDTMainWizardPage) page).getProjectName();
 		// }
 		if (fSelectedConnection != null && fSelectedConnection.isOpen()) {
-			IRemoteFileManager fileMgr = fSelectedConnection.getRemoteServices().getFileManager(fSelectedConnection);
+			IRemoteFileManager fileMgr = fSelectedConnection.getFileManager();
 			URI defaultURI = fileMgr.toURI(fSelectedConnection.getWorkingDirectory());
 
 			// Handle files specially. Assume a file if there is no project to
@@ -201,7 +199,7 @@
 		if (fLocationText.getText().length() == 0) {
 			return Messages.GitParticipant_2;
 		}
-		IRemoteFileManager fileManager = fSelectedConnection.getRemoteServices().getFileManager(fSelectedConnection);
+		IRemoteFileManager fileManager = fSelectedConnection.getFileManager();
 		if (fileManager.toURI(fLocationText.getText()) == null) {
 			return Messages.GitParticipant_3;
 		}
@@ -211,16 +209,20 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ptp.rdt.sync.ui.ISynchronizeParticipant#getProvider(org.eclipse.core.resources.IProject)
+	 * @see org.eclipse.ptp.rdt.sync.ui.ISynchronizeParticipant#getConnection()
 	 */
 	@Override
-	public ISynchronizeService getProvider(IProject project) {
-		ISynchronizeService service = super.getProvider(project);
-		service.setLocation(fLocationText.getText());
-		service.setRemoteConnection(fSelectedConnection);
-		return service;
+	public IRemoteConnection getConnection() {
+		return fSelectedConnection;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ptp.rdt.sync.ui.ISynchronizeParticipant#getLocation()
+	 */
+	@Override
+	public String getLocation() {
+		return fLocationText.getText();
 	}
 
 	@Override
diff --git a/rdt/org.eclipse.ptp.rdt.sync.git.ui/src/org/eclipse/ptp/internal/rdt/sync/git/ui/preferences/SyncGitPreferencePage.java b/rdt/org.eclipse.ptp.rdt.sync.git.ui/src/org/eclipse/ptp/internal/rdt/sync/git/ui/preferences/SyncGitPreferencePage.java
index 43cfe91..5f84c01 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.git.ui/src/org/eclipse/ptp/internal/rdt/sync/git/ui/preferences/SyncGitPreferencePage.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.git.ui/src/org/eclipse/ptp/internal/rdt/sync/git/ui/preferences/SyncGitPreferencePage.java
@@ -36,16 +36,15 @@
 import org.eclipse.ptp.rdt.sync.core.RecursiveSubMonitor;
 import org.eclipse.ptp.rdt.sync.core.exceptions.RemoteExecutionException;
 import org.eclipse.ptp.rdt.sync.core.exceptions.RemoteSyncException;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemotePreferenceConstants;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
-import org.eclipse.ptp.remote.ui.IRemoteUIConnectionManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIConstants;
-import org.eclipse.ptp.remote.ui.IRemoteUIFileManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIServices;
-import org.eclipse.ptp.remote.ui.RemoteUIServices;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.RemoteServices;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
+import org.eclipse.remote.ui.IRemoteUIConnectionManager;
+import org.eclipse.remote.ui.IRemoteUIConstants;
+import org.eclipse.remote.ui.IRemoteUIFileManager;
+import org.eclipse.remote.ui.IRemoteUIServices;
+import org.eclipse.remote.ui.RemoteUIServices;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
@@ -323,26 +322,26 @@
 
 		// TODO: Handle case where service provider is not found.
 		IRemoteServices rs = this.getRemoteServicesProvider();
-		IRemoteConnection[] connections = rs.getConnectionManager().getConnections();
+		List<IRemoteConnection> connections = rs.getConnectionManager().getConnections();
 
 		fComboIndexToRemoteConnectionMap.clear();
-		for (int i = 0; i < connections.length; i++) {
-			connectionCombo.add(connections[i].getName(), i);
-			fComboIndexToRemoteConnectionMap.put(i, connections[i]);
+		for (int i = 0; i < connections.size(); i++) {
+			connectionCombo.add(connections.get(i).getName(), i);
+			fComboIndexToRemoteConnectionMap.put(i, connections.get(i));
 		}
 
-		if (connections.length > 0) {
+		if (connections.size() > 0) {
 			connectionCombo.select(0);
 		}
 	}
 
 	// Return the remote service to use or null if it cannot be found.
-	// Currently, we simply always return the remote tools provider, which *should* always be available.
+	// Currently, we simply always return the JSch provider, which *should* always be available.
 	IRemoteServices remoteServicesProvider = null;
 
 	private IRemoteServices getRemoteServicesProvider() {
 		if (remoteServicesProvider == null) {
-			remoteServicesProvider = RemoteServices.getRemoteServices(IRemotePreferenceConstants.REMOTE_TOOLS_REMOTE_SERVICES_ID);
+			remoteServicesProvider = RemoteServices.getRemoteServices("org.eclipse.remote.JSch"); //$NON-NLS-1$
 		}
 		return remoteServicesProvider;
 	}
diff --git a/rdt/org.eclipse.ptp.rdt.sync.ui/META-INF/MANIFEST.MF b/rdt/org.eclipse.ptp.rdt.sync.ui/META-INF/MANIFEST.MF
index 7522c01..c6f922f 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.ui/META-INF/MANIFEST.MF
+++ b/rdt/org.eclipse.ptp.rdt.sync.ui/META-INF/MANIFEST.MF
@@ -8,8 +8,8 @@
  org.eclipse.ui,
  org.eclipse.ui.ide,
  org.eclipse.core.resources,
- org.eclipse.ptp.remote.core,
- org.eclipse.ptp.remote.ui,
+ org.eclipse.remote.core,
+ org.eclipse.remote.ui,
  org.eclipse.ptp.rdt.sync.core
 Bundle-Localization: plugin
 Bundle-ActivationPolicy: lazy
diff --git a/rdt/org.eclipse.ptp.rdt.sync.ui/icons/etool16/sync.gif b/rdt/org.eclipse.ptp.rdt.sync.ui/icons/etool16/sync.gif
new file mode 100644
index 0000000..d2e38ac
--- /dev/null
+++ b/rdt/org.eclipse.ptp.rdt.sync.ui/icons/etool16/sync.gif
Binary files differ
diff --git a/rdt/org.eclipse.ptp.rdt.sync.ui/plugin.properties b/rdt/org.eclipse.ptp.rdt.sync.ui/plugin.properties
index a8e9cfd..c3c8a47 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.ui/plugin.properties
+++ b/rdt/org.eclipse.ptp.rdt.sync.ui/plugin.properties
@@ -35,4 +35,5 @@
 SyncNone.name = Sync None
 ManageSync.name = Manage...
 SynchronizedProjectsPreferencePage.name = Synchronized Projects
-FileFilteringPreferencePage.name = File Filtering
\ No newline at end of file
+FileFilteringPreferencePage.name = File Filtering
+SyncCommand.tooltip=Synchronize the selected project
\ No newline at end of file
diff --git a/rdt/org.eclipse.ptp.rdt.sync.ui/plugin.xml b/rdt/org.eclipse.ptp.rdt.sync.ui/plugin.xml
index d7c2872..760a9cf 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.ui/plugin.xml
+++ b/rdt/org.eclipse.ptp.rdt.sync.ui/plugin.xml
@@ -40,7 +40,6 @@
    <extension
          point="org.eclipse.ui.commands">
       <command
-            defaultHandler="org.eclipse.ptp.internal.rdt.sync.ui.menus.SyncMenuOperation"
             id="org.eclipse.ptp.rdt.sync.ui.SyncCommand"
             name="Sync Operations">
          <commandParameter
@@ -210,6 +209,57 @@
                visible="true">
          </separator>
       </menuContribution>
+      <menuContribution
+            allPopups="false"
+            locationURI="toolbar:org.eclipse.ui.main.toolbar">
+         <toolbar
+               id="org.eclipse.ui.workbench.file">
+            <command
+                  commandId="org.eclipse.ptp.rdt.sync.ui.SyncCommand"
+                  icon="icons/etool16/sync.gif"
+                  id="org.eclipse.ptp.rdt.sync.ui.refCommand"
+                  style="pulldown"
+                  tooltip="%SyncCommand.tooltip">
+               <visibleWhen
+                     checkEnabled="false">
+                  <or>
+                     <or>
+                        <with
+                              variable="activeWorkbenchWindow.activePerspective">
+                           <equals
+                                 value="org.eclipse.cdt.ui.CPerspective">
+                           </equals>
+                        </with>
+                        <with
+                              variable="activeWorkbenchWindow.activePerspective">
+                           <equals
+                                 value="org.eclipse.ptp.rdt.ui.remoteCPerspective">
+                           </equals>
+                        </with>
+                     </or>
+                     <with
+                           variable="activeWorkbenchWindow.activePerspective">
+                        <equals
+                              value="org.eclipse.photran.ui.FortranPerspective">
+                        </equals>
+                     </with>
+                  </or>
+               </visibleWhen>
+               <parameter
+                     name="org.eclipse.ptp.rdt.sync.ui.syncCommand.syncModeParameter"
+                     value="sync_active">
+               </parameter>
+            </command>
+         </toolbar>
+      </menuContribution>
+      <menuContribution
+            allPopups="false"
+            locationURI="menu:org.eclipse.ptp.rdt.sync.ui.refCommand">
+         <dynamic
+               class="org.eclipse.ptp.internal.rdt.sync.ui.menus.SetActiveMenu"
+               id="org.eclipse.ptp.rdt.sync.ui.dynamic2">
+         </dynamic>
+      </menuContribution>
    </extension>
    <extension
          point="org.eclipse.ui.decorators">
@@ -236,7 +286,7 @@
    <extension
          point="org.eclipse.ui.preferencePages">
       <page
-            category="org.eclipse.ptp.remote.ui.RemoteDevelopmentPreferencePage"
+            category="org.eclipse.remote.ui.RemoteDevelopmentPreferencePage"
             class="org.eclipse.ptp.internal.rdt.sync.ui.preferences.SyncPreferencePage"
             id="org.eclipse.ptp.rdt.sync.ui.SyncPreferencePage"
             name="%SynchronizedProjectsPreferencePage.name">
@@ -293,4 +343,28 @@
         </page>
 
      </extension>
+   <extension
+         point="org.eclipse.ui.handlers">
+      <handler
+            class="org.eclipse.ptp.internal.rdt.sync.ui.menus.SyncMenuOperation"
+            commandId="org.eclipse.ptp.rdt.sync.ui.SyncCommand">
+         <enabledWhen>
+               <with
+                     variable="selection">
+                  <count
+                        value="1">
+                  </count>
+                  <iterate>
+                     <adapt
+                           type="org.eclipse.core.resources.IProject">
+                        <test
+                              property="org.eclipse.core.resources.projectNature"
+                              value="org.eclipse.ptp.rdt.sync.core.remoteSyncNature">
+                        </test>
+                     </adapt>
+                  </iterate>
+               </with>
+         </enabledWhen>
+      </handler>
+   </extension>
 </plugin>
diff --git a/rdt/org.eclipse.ptp.rdt.sync.ui/pom.xml b/rdt/org.eclipse.ptp.rdt.sync.ui/pom.xml
index f5e6d9b..f3a8927 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.ui/pom.xml
+++ b/rdt/org.eclipse.ptp.rdt.sync.ui/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/ResourceChangeListener.java b/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/ResourceChangeListener.java
index 67ae951..2786e9a 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/ResourceChangeListener.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/ResourceChangeListener.java
@@ -51,7 +51,12 @@
 					return;
 				}
 				SyncManager.setSyncMode(project, SyncMode.UNAVAILABLE);
-				SyncConfigManager.getActive(project).getSyncService().close(project);
+				String currentSyncServiceId = SyncConfigManager.getActive(project).getSyncProviderId();
+				try {
+					SyncManager.getSyncService(currentSyncServiceId).close(project);
+				} catch (CoreException e) {
+					RDTSyncUIPlugin.log(e);
+				}
 				return;
 			}
 			for (IResourceDelta delta : event.getDelta().getAffectedChildren()) {
diff --git a/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/SyncMergeEditor.java b/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/SyncMergeEditor.java
index 2a0a339..29a7fa6 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/SyncMergeEditor.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/SyncMergeEditor.java
@@ -30,6 +30,7 @@
 import org.eclipse.ptp.internal.rdt.sync.ui.messages.Messages;
 import org.eclipse.ptp.rdt.sync.core.SyncConfig;
 import org.eclipse.ptp.rdt.sync.core.SyncConfigManager;
+import org.eclipse.ptp.rdt.sync.core.SyncManager;
 import org.eclipse.ptp.rdt.sync.core.services.ISynchronizeService;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.team.ui.synchronize.SaveableCompareEditorInput;
@@ -79,12 +80,13 @@
 		protected ICompareInput prepareCompareInput(IProgressMonitor monitor) throws InvocationTargetException,
 				InterruptedException {
 			IProject project = file.getProject();
-			ISynchronizeService syncService = SyncConfigManager.getActive(project).getSyncService();
+			String currentSyncServiceId = SyncConfigManager.getActive(project).getSyncProviderId();
+			ISynchronizeService syncService = SyncManager.getSyncService(currentSyncServiceId);
 			SyncConfig syncConfig = SyncConfigManager.getActive(project);
 			String[] mergeParts = null;
 
 			try {
-				mergeParts = syncService.getMergeConflictParts(project, syncConfig, file);
+				mergeParts = syncService.getMergeConflictParts(project, file);
 			} catch (CoreException e) {
 				RDTSyncUIPlugin.log(e);
 				return new DiffNode(null, Differencer.CONFLICTING, new SyncMergeItem(Messages.SyncMergeEditor_1),
diff --git a/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/SyncMergeFileTableViewer.java b/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/SyncMergeFileTableViewer.java
index a03d241..475edac 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/SyncMergeFileTableViewer.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/SyncMergeFileTableViewer.java
@@ -180,10 +180,10 @@
 		// Get merge-conflicted files
 		Set<IPath> mergeConflictFiles = new HashSet<IPath>();
 		if (project != null) {
-			ISynchronizeService syncService = SyncConfigManager.getActive(project).getSyncService();
 			SyncConfig syncConfig = SyncConfigManager.getActive(project);
+			ISynchronizeService syncService = SyncManager.getSyncService(syncConfig.getSyncProviderId());
 			try {
-				mergeConflictFiles = syncService.getMergeConflictFiles(project, syncConfig);
+				mergeConflictFiles = syncService.getMergeConflictFiles(project);
 			} catch (CoreException e) {
 				RDTSyncUIPlugin.log(e);
 			}
diff --git a/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/handlers/CommonMissingConnectionHandler.java b/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/handlers/CommonMissingConnectionHandler.java
index c3ea63e..8ef24d8 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/handlers/CommonMissingConnectionHandler.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/handlers/CommonMissingConnectionHandler.java
@@ -15,9 +15,12 @@
 import org.eclipse.ptp.internal.rdt.sync.ui.RDTSyncUIPlugin;
 import org.eclipse.ptp.internal.rdt.sync.ui.messages.Messages;
 import org.eclipse.ptp.rdt.sync.core.handlers.IMissingConnectionHandler;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.ui.IRemoteUIConnectionManager;
-import org.eclipse.ptp.remote.ui.RemoteUIServices;
+import org.eclipse.remote.core.IRemoteConnectionWorkingCopy;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.ui.IRemoteUIConnectionManager;
+import org.eclipse.remote.ui.IRemoteUIConnectionWizard;
+import org.eclipse.remote.ui.RemoteUIServices;
+import org.eclipse.remote.ui.widgets.RemoteConnectionWidget;
 
 public class CommonMissingConnectionHandler implements IMissingConnectionHandler {
 	private static long lastMissingConnectiontDialogTimeStamp = 0;
@@ -47,7 +50,10 @@
 					IRemoteUIConnectionManager connectionManager = RemoteUIServices.getRemoteUIServices(remoteServices)
 							.getUIConnectionManager();
 					if (connectionManager != null) {
-						connectionManager.newConnection(dialog.getShell());
+						IRemoteUIConnectionWizard wizard = connectionManager.getConnectionWizard(dialog.getShell());
+						wizard.setConnectionName(RemoteConnectionWidget.DEFAULT_CONNECTION_NAME);
+						IRemoteConnectionWorkingCopy wc = wizard.open();
+						wc.save();
 					}
 				}
 			}
diff --git a/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/menus/SyncMenuOperation.java b/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/menus/SyncMenuOperation.java
index b71301f..a720120 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/menus/SyncMenuOperation.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/menus/SyncMenuOperation.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.ptp.internal.rdt.sync.ui.menus;
 
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Map;
 
@@ -30,7 +29,6 @@
 import org.eclipse.ptp.internal.rdt.sync.ui.preferences.SyncFileFilterDialog;
 import org.eclipse.ptp.internal.rdt.sync.ui.properties.ManageConfigurationDialog;
 import org.eclipse.ptp.rdt.sync.core.AbstractSyncFileFilter;
-import org.eclipse.ptp.rdt.sync.core.SyncConfig;
 import org.eclipse.ptp.rdt.sync.core.SyncConfigManager;
 import org.eclipse.ptp.rdt.sync.core.SyncFlag;
 import org.eclipse.ptp.rdt.sync.core.SyncManager;
@@ -118,7 +116,7 @@
 				}
 				try {
 					SyncManager.saveFileFilter(project, sff);
-				} catch (IOException e) {
+				} catch (CoreException e) {
 					RDTSyncUIPlugin.log(e);
 				}
 			} else if (command.equals(syncFileList)) {
@@ -127,8 +125,8 @@
 				SyncFileFilterDialog.open(HandlerUtil.getActiveShell(event), null);
 			} else if (command.equals(checkoutCommand) || command.equals(resolveMergeCommand)
 					|| (command.equals(resolveAsRemoteCommand))) {
-				ISynchronizeService syncService = SyncConfigManager.getActive(project).getSyncService();
-				SyncConfig syncConfig = SyncConfigManager.getActive(project);
+				String currentSyncServiceId = SyncConfigManager.getActive(project).getSyncProviderId();
+				ISynchronizeService syncService = SyncManager.getSyncService(currentSyncServiceId);
 				IStructuredSelection sel = this.getSelectedElements();
 
 				ArrayList<IPath> paths = new ArrayList<IPath>();
@@ -147,14 +145,14 @@
 				}
 
 				if (command.equals(checkoutCommand)) {
-					syncService.checkout(project, syncConfig, paths.toArray(new IPath[paths.size()]));
+					syncService.checkout(project, paths.toArray(new IPath[paths.size()]));
 				}
 				if (command.equals(resolveAsRemoteCommand)) {
 
-					syncService.checkoutRemoteCopy(project, syncConfig, paths.toArray(new IPath[paths.size()]));
+					syncService.checkoutRemoteCopy(project, paths.toArray(new IPath[paths.size()]));
 				}
 				if (command.equals(resolveMergeCommand) || command.equals(resolveAsRemoteCommand)) {
-					syncService.setMergeAsResolved(project, syncConfig, paths.toArray(new IPath[paths.size()]));
+					syncService.setMergeAsResolved(project, paths.toArray(new IPath[paths.size()]));
 					SyncMergeFileTableViewer viewer = SyncMergeFileTableViewer.getActiveInstance();
 					if (viewer != null) {
 						viewer.update(null);
diff --git a/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/preferences/RemoteContentProvider.java b/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/preferences/RemoteContentProvider.java
index 2094fa1..b44d70c 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/preferences/RemoteContentProvider.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/preferences/RemoteContentProvider.java
@@ -32,8 +32,8 @@
 import org.eclipse.ptp.rdt.sync.core.SyncConfig;
 import org.eclipse.ptp.rdt.sync.core.SyncConfigManager;
 import org.eclipse.ptp.rdt.sync.core.exceptions.MissingConnectionException;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteFileManager;
 
 /**
  * Class for accessing the contents (files and directories) of a remote file system. The constructor takes a connection and a
@@ -64,7 +64,7 @@
 		connection = conn;
 		rootDir = dir;
 		project = proj;
-		fileManager = connection.getRemoteServices().getFileManager(connection);
+		fileManager = connection.getFileManager();
 	}
 
 	/**
@@ -201,8 +201,7 @@
 		IProject project = file.getProject();
 		SyncConfig config = SyncConfigManager.getActive(project);
 		if (config != null) {
-			IRemoteFileManager fileManager = config.getRemoteConnection().getRemoteServices()
-					.getFileManager(config.getRemoteConnection());
+			IRemoteFileManager fileManager = config.getRemoteConnection().getFileManager();
 			IPath remotePath = new Path(config.getLocation(project)).addTrailingSeparator().append(file.getProjectRelativePath());
 			IFileStore fileStore = fileManager.getResource(remotePath.toString()); // Assumes "/" separator on remote
 			InputStream fileInput = fileStore.openInputStream(EFS.NONE, null);
diff --git a/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/preferences/SyncFileFilterDialog.java b/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/preferences/SyncFileFilterDialog.java
index 995c3e9..5294974 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/preferences/SyncFileFilterDialog.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/preferences/SyncFileFilterDialog.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.ptp.internal.rdt.sync.ui.preferences;
 
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
 
@@ -248,7 +247,7 @@
 		if (project != null) {
 			try {
 				SyncManager.saveFileFilter(project, filter);
-			} catch (IOException e) {
+			} catch (CoreException e) {
 				RDTSyncUIPlugin.log(e);
 			}
 		}
diff --git a/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/properties/ManageConfigurationWidget.java b/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/properties/ManageConfigurationWidget.java
index e362190..7f3a23b 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/properties/ManageConfigurationWidget.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/properties/ManageConfigurationWidget.java
@@ -38,6 +38,7 @@
 import org.eclipse.ptp.internal.rdt.sync.ui.wizards.AddSyncConfigWizard;
 import org.eclipse.ptp.rdt.sync.core.SyncConfig;
 import org.eclipse.ptp.rdt.sync.core.SyncConfigManager;
+import org.eclipse.ptp.rdt.sync.core.SyncManager;
 import org.eclipse.ptp.rdt.sync.ui.ISynchronizeProperties;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
@@ -80,9 +81,10 @@
 		public Object[] getChildren(Object parentElement) {
 			if (parentElement instanceof SyncConfig) {
 				SyncConfig config = (SyncConfig) parentElement;
+				String syncServiceName = SyncManager.getSyncService(config.getSyncProviderId()).getName();
 				String[] children = new String[] { Messages.ManageConfigurationWidget_Connection_name + config.getConnectionName(),
 						Messages.ManageConfigurationWidget_Project_location + config.getLocation(),
-						Messages.ManageConfigurationWidget_Sync_provider + config.getSyncService().getName() };
+						Messages.ManageConfigurationWidget_Sync_provider + syncServiceName };
 				return children;
 			}
 			return null;
diff --git a/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/wizards/AddSyncConfigWizardPage.java b/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/wizards/AddSyncConfigWizardPage.java
index afd2daa..e93b12c 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/wizards/AddSyncConfigWizardPage.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/wizards/AddSyncConfigWizardPage.java
@@ -18,13 +18,13 @@
 import org.eclipse.ptp.rdt.sync.core.SyncConfig;
 import org.eclipse.ptp.rdt.sync.core.SyncConfigManager;
 import org.eclipse.ptp.rdt.sync.core.services.ISynchronizeServiceDescriptor;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.ui.IRemoteUIConnectionManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIConstants;
-import org.eclipse.ptp.remote.ui.IRemoteUIFileManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIServices;
-import org.eclipse.ptp.remote.ui.RemoteUIServices;
-import org.eclipse.ptp.remote.ui.widgets.RemoteConnectionWidget;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.ui.IRemoteUIConnectionManager;
+import org.eclipse.remote.ui.IRemoteUIConstants;
+import org.eclipse.remote.ui.IRemoteUIFileManager;
+import org.eclipse.remote.ui.IRemoteUIServices;
+import org.eclipse.remote.ui.RemoteUIServices;
+import org.eclipse.remote.ui.widgets.RemoteConnectionWidget;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
@@ -100,7 +100,7 @@
 		});
 
 		fRemoteConnectioWidget = new RemoteConnectionWidget(composite, SWT.NONE, null,
-				RemoteConnectionWidget.FLAG_NO_LOCAL_SELECTION, null);
+				RemoteConnectionWidget.FLAG_NO_LOCAL_SELECTION);
 		gd = new GridData(GridData.FILL_HORIZONTAL);
 		gd.horizontalSpan = 3;
 		fRemoteConnectioWidget.setLayoutData(gd);
@@ -196,8 +196,8 @@
 	 */
 	public SyncConfig getSyncConfig() {
 		if (isPageComplete()) {
-			SyncConfig config = SyncConfigManager.newConfig(fConfigName, fSyncProvider.getId(),
-					fSelectedConnection.getRemoteServices().getId(), fSelectedConnection.getName(), fProjectLocation);
+			SyncConfig config = SyncConfigManager.newConfig(fConfigName, fSyncProvider.getId(), fSelectedConnection
+					.getRemoteServices().getId(), fSelectedConnection.getName(), fProjectLocation);
 			config.setProject(fProject);
 			return config;
 		}
diff --git a/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/wizards/NewSyncProjectWizard.java b/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/wizards/NewSyncProjectWizard.java
index 3773103..348ba8f 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/wizards/NewSyncProjectWizard.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/internal/rdt/sync/ui/wizards/NewSyncProjectWizard.java
@@ -49,6 +49,7 @@
 import org.eclipse.ptp.rdt.sync.core.SyncFlag;
 import org.eclipse.ptp.rdt.sync.core.SyncManager;
 import org.eclipse.ptp.rdt.sync.core.SyncManager.SyncMode;
+import org.eclipse.ptp.rdt.sync.ui.ISynchronizeParticipant;
 import org.eclipse.ptp.rdt.sync.ui.ISynchronizeWizardExtension;
 import org.eclipse.ui.INewWizard;
 import org.eclipse.ui.IPerspectiveDescriptor;
@@ -391,8 +392,9 @@
 		}
 		// Add sync-specific elements to project
 		try {
-			SyncManager.makeSyncProject(project, mainPage.getSynchronizeParticipant().getSyncConfigName(),
-					mainPage.getSynchronizeParticipant().getProvider(project), mainPage.getCustomFileFilter());
+			ISynchronizeParticipant part = mainPage.getSynchronizeParticipant();
+			SyncManager.makeSyncProject(project, part.getSyncConfigName(), part.getServiceId(), part.getConnection(),
+					part.getLocation(), mainPage.getCustomFileFilter());
 		} catch (CoreException e) {
 			return false;
 		}
diff --git a/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/rdt/sync/ui/AbstractSynchronizeParticipant.java b/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/rdt/sync/ui/AbstractSynchronizeParticipant.java
index 36091d7..34c4c10 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/rdt/sync/ui/AbstractSynchronizeParticipant.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/rdt/sync/ui/AbstractSynchronizeParticipant.java
@@ -10,10 +10,6 @@
  *******************************************************************************/
 package org.eclipse.ptp.rdt.sync.ui;
 
-import org.eclipse.core.resources.IProject;
-import org.eclipse.ptp.internal.rdt.sync.core.services.SynchronizeServiceRegistry;
-import org.eclipse.ptp.rdt.sync.core.services.ISynchronizeService;
-
 /**
  * Must be extended by extensions to the syncProvider extension point.
  * 
@@ -58,16 +54,6 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.rdt.sync.ui.ISynchronizeParticipant#getProvider(org.eclipse.core.resources.IProject)
-	 */
-	@Override
-	public ISynchronizeService getProvider(IProject project) {
-		return SynchronizeServiceRegistry.getSynchronizeServiceDescriptor(getServiceId()).getService();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
 	 * @see org.eclipse.ptp.rdt.sync.ui.ISynchronizeParticipantDescriptor#getServiceId()
 	 */
 	@Override
diff --git a/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/rdt/sync/ui/ISynchronizeParticipant.java b/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/rdt/sync/ui/ISynchronizeParticipant.java
index b9f9aeb..5934055 100644
--- a/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/rdt/sync/ui/ISynchronizeParticipant.java
+++ b/rdt/org.eclipse.ptp.rdt.sync.ui/src/org/eclipse/ptp/rdt/sync/ui/ISynchronizeParticipant.java
@@ -10,19 +10,17 @@
  *******************************************************************************/
 package org.eclipse.ptp.rdt.sync.ui;
 
-import org.eclipse.core.resources.IProject;
 import org.eclipse.jface.operation.IRunnableContext;
-import org.eclipse.ptp.rdt.sync.core.services.ISynchronizeService;
+import org.eclipse.remote.core.IRemoteConnection;
 import org.eclipse.swt.widgets.Composite;
 
 /**
- * Must be implemented by extensions to the syncronizeParticipant extension
+ * Must be implemented by extensions to the synchronizeParticipant extension
  * point.
- * 
  */
 public interface ISynchronizeParticipant extends ISynchronizeParticipantDescriptor {
 	/**
-	 * Create a control to configure a synchronize provider
+	 * Create a control to configure a remote location
 	 * 
 	 * @param parent
 	 *            parent composite that contains the configuration area
@@ -37,14 +35,16 @@
 	public String getErrorMessage();
 
 	/**
-	 * Get the configured sync service provider for the supplied project. Only
-	 * valid if {@link isConfigComplete()} is true.
-	 * 
-	 * @param project
-	 *            project that will be synchronized by this provider
-	 * @return configured sync service provider
+	 * Get connection to a remote host
+	 * @return connection
 	 */
-	public ISynchronizeService getProvider(IProject project);
+	public IRemoteConnection getConnection();
+
+	/**
+	 * Get directory on remote host
+	 * @return directory
+	 */
+	public String getLocation();
 
 	/**
 	 * Get the name of the sync config to create for this participant. Only
diff --git a/rdt/org.eclipse.ptp.rdt.ui/.options b/rdt/org.eclipse.ptp.rdt.ui/.options
deleted file mode 100644
index 830ff6e..0000000
--- a/rdt/org.eclipse.ptp.rdt.ui/.options
+++ /dev/null
@@ -1,7 +0,0 @@
-# Debugging options for the org.eclipse.ptp.rdt.ui
-
-# Also displays overall startup time.
-org.eclipse.ptp.rdt.ui/debug=false
-
-# Enables dstore server tracing
-org.eclipse.ptp.rdt.ui/debug/dstore/tracing=false
diff --git a/rdt/org.eclipse.ptp.rdt.ui/META-INF/MANIFEST.MF b/rdt/org.eclipse.ptp.rdt.ui/META-INF/MANIFEST.MF
index 74d3bbe..70dd840 100755
--- a/rdt/org.eclipse.ptp.rdt.ui/META-INF/MANIFEST.MF
+++ b/rdt/org.eclipse.ptp.rdt.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: org.eclipse.ptp.rdt.ui;singleton:=true
-Bundle-Version: 5.0.0.qualifier
+Bundle-Version: 6.0.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.cdt.core;bundle-version="5.0.2",
  org.eclipse.cdt.ui;bundle-version="5.0.2",
@@ -30,8 +30,8 @@
  org.eclipse.rse.services.dstore;bundle-version="3.0.0",
  org.eclipse.core.filesystem;bundle-version="1.2.0",
  org.eclipse.rse.subsystems.files.core;bundle-version="3.0.0",
- org.eclipse.ptp.remote.core;bundle-version="2.0.1",
- org.eclipse.ptp.remote.ui;bundle-version="2.0.0",
+ org.eclipse.remote.core,
+ org.eclipse.remote.ui,
  org.eclipse.ui.console;bundle-version="3.3.0",
  org.eclipse.dstore.extra;bundle-version="2.1.100",
  org.eclipse.ptp.services.core;bundle-version="1.0.0",
diff --git a/rdt/org.eclipse.ptp.rdt.ui/pom.xml b/rdt/org.eclipse.ptp.rdt.ui/pom.xml
index 7f74353..e6a769f 100644
--- a/rdt/org.eclipse.ptp.rdt.ui/pom.xml
+++ b/rdt/org.eclipse.ptp.rdt.ui/pom.xml
@@ -6,11 +6,11 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.rdt.ui</artifactId>
-  <version>5.0.0-SNAPSHOT</version>
+  <version>6.0.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/internal/rdt/ui/actions/GenerateActionGroup.java b/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/internal/rdt/ui/actions/GenerateActionGroup.java
index 975104c..42c3cd6 100755
--- a/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/internal/rdt/ui/actions/GenerateActionGroup.java
+++ b/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/internal/rdt/ui/actions/GenerateActionGroup.java
@@ -25,6 +25,7 @@
 import org.eclipse.cdt.internal.ui.IContextMenuConstants;
 import org.eclipse.cdt.internal.ui.actions.ActionMessages;
 import org.eclipse.cdt.internal.ui.actions.CDTQuickMenuCreator;
+import org.eclipse.cdt.internal.ui.editor.AddIncludeAction;
 import org.eclipse.cdt.internal.ui.editor.CEditor;
 import org.eclipse.cdt.internal.ui.editor.ICEditorActionDefinitionIds;
 import org.eclipse.cdt.internal.ui.editor.SortLinesAction;
@@ -115,7 +116,7 @@
 	private List<ISelectionChangedListener> fRegisteredSelectionListeners;
 //	private List<RefactoringAction> fRefactorActions= new ArrayList<RefactoringAction>();
 	
-//	private AddIncludeOnSelectionAction fAddInclude;
+	private AddIncludeAction fAddInclude;
 //	private OverrideMethodsAction fOverrideMethods;
 //	private GenerateHashCodeEqualsAction fHashCodeEquals;
 //	private AddGetterSetterAction fAddGetterSetter;
@@ -151,9 +152,9 @@
 		fEditor= editor;
 		fGroupName= groupName;
 				
-//		fAddInclude= new AddIncludeOnSelectionAction(editor);
-//		fAddInclude.setActionDefinitionId(ICEditorActionDefinitionIds.ADD_INCLUDE);
-//		editor.setAction("AddIncludeOnSelection", fAddInclude); //$NON-NLS-1$
+		fAddInclude= new AddIncludeAction(editor);
+		fAddInclude.setActionDefinitionId(ICEditorActionDefinitionIds.ADD_INCLUDE);
+		editor.setAction("AddInclude", fAddInclude); //$NON-NLS-1$
 		
 //		fOrganizeIncludes= new OrganizeIncludesAction(editor);
 //		fOrganizeIncludes.setActionDefinitionId(ICEditorActionDefinitionIds.ORGANIZE_INCLUDES);
@@ -414,7 +415,7 @@
 		added+= addEditorAction(source, "Indent"); //$NON-NLS-1$
 		added+= addEditorAction(source, "Format"); //$NON-NLS-1$
 		source.add(new Separator(GROUP_ORGANIZE));
-//		added+= addAction(source, fAddInclude);
+		added+= addAction(source, fAddInclude);
 //		added+= addAction(source, fOrganizeIncludes);
 //		added+= addAction(source, fSortMembers);
 		added+= addAction(source, fSortLines);
@@ -440,7 +441,7 @@
 		source.add(new Separator(GROUP_EDIT));
 		added+= addAction(source, fFormatAll);
 		source.add(new Separator(GROUP_ORGANIZE));
-//		added+= addAction(source, fAddInclude);
+		added+= addAction(source, fAddInclude);
 //		added+= addAction(source, fOrganizeIncludes);
 //		added+= addAction(source, fSortMembers);
 //		added+= addAction(source, fCleanUp);
@@ -479,7 +480,7 @@
 	}
 	
 	private void setGlobalActionHandlers(IActionBars actionBar) {
-//		actionBar.setGlobalActionHandler(CdtActionConstants.ADD_INCLUDE, fAddInclude);
+		actionBar.setGlobalActionHandler(CdtActionConstants.ADD_INCLUDE, fAddInclude);
 //		actionBar.setGlobalActionHandler(CdtActionConstants.OVERRIDE_METHODS, fOverrideMethods);
 //		actionBar.setGlobalActionHandler(CdtActionConstants.GETTERS_AND_SETTERS, fAddGetterSetter);
 //		actionBar.setGlobalActionHandler(CdtActionConstants.IMPLEMENT_METHOD, fImplementMethod);
diff --git a/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/internal/rdt/ui/scannerinfo/RemoteIncludeDialog.java b/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/internal/rdt/ui/scannerinfo/RemoteIncludeDialog.java
index 0727280..ce87d72 100644
--- a/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/internal/rdt/ui/scannerinfo/RemoteIncludeDialog.java
+++ b/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/internal/rdt/ui/scannerinfo/RemoteIncludeDialog.java
@@ -12,10 +12,10 @@
 
 import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
 import org.eclipse.cdt.ui.newui.AbstractCPropertyTab;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.ui.IRemoteUIConnectionManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIFileManager;
-import org.eclipse.ptp.remote.ui.RemoteUIServices;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.ui.IRemoteUIConnectionManager;
+import org.eclipse.remote.ui.IRemoteUIFileManager;
+import org.eclipse.remote.ui.RemoteUIServices;
 import org.eclipse.rse.core.filters.SystemFilterReference;
 import org.eclipse.rse.core.model.IHost;
 import org.eclipse.rse.files.ui.dialogs.SystemRemoteFolderDialog;
@@ -200,14 +200,14 @@
 					IRemoteUIConnectionManager connMgr = getUIConnectionManager();
 					if (connMgr != null) {
 						connMgr.openConnectionWithProgress(shell, null, fRemoteConnection);
-						if (fRemoteConnection.isOpen()) {
-							IRemoteUIFileManager fileMgr = getUIFileManager();
-							if (fileMgr != null) {
-								fileMgr.setConnection(fRemoteConnection);
-								String path = fileMgr.browseDirectory(shell, Messages.RemoteIncludeDialog_select, "", 0); //$NON-NLS-1$
-								if (path != null) {
-									text.setText(path);
-								}
+					}
+					if (fRemoteConnection.isOpen()) {
+						IRemoteUIFileManager fileMgr = getUIFileManager();
+						if (fileMgr != null) {
+							fileMgr.setConnection(fRemoteConnection);
+							String path = fileMgr.browseDirectory(shell, Messages.RemoteIncludeDialog_select, "", 0); //$NON-NLS-1$
+							if (path != null) {
+								text.setText(path);
 							}
 						}
 					}
diff --git a/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/serviceproviders/IRemoteToolsIndexServiceProvider.java b/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/serviceproviders/IRemoteToolsIndexServiceProvider.java
index 496bdd0..2516886 100644
--- a/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/serviceproviders/IRemoteToolsIndexServiceProvider.java
+++ b/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/serviceproviders/IRemoteToolsIndexServiceProvider.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.ptp.rdt.ui.serviceproviders;
 
-import org.eclipse.ptp.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnection;
 
 /**
  * @since 2.0
@@ -20,6 +20,7 @@
 	 * Get the remote connection used by a service provider
 	 * 
 	 * @return remote connection
+	 * @since 6.0
 	 */
 	public IRemoteConnection getConnection();
 
@@ -28,6 +29,7 @@
 	 * 
 	 * @param conn
 	 *            remote connection
+	 * @since 6.0
 	 */
 	public void setConnection(IRemoteConnection conn);
 }
diff --git a/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/serviceproviders/NullBuildServiceProvider.java b/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/serviceproviders/NullBuildServiceProvider.java
index 42a46ff..4b82b80 100644
--- a/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/serviceproviders/NullBuildServiceProvider.java
+++ b/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/serviceproviders/NullBuildServiceProvider.java
@@ -13,8 +13,8 @@
 import org.eclipse.ptp.services.core.IServiceProvider;
 import org.eclipse.ptp.services.core.ServiceProvider;
 import org.eclipse.ptp.rdt.ui.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteServices;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteServices;
 
 /**
  * A build service provider that does nothing.
@@ -49,7 +49,7 @@
 
 
 	/**
-	 * @since 2.0
+	 * @since 6.0
 	 */
 	public IRemoteConnection getConnection() {
 		return null;
@@ -57,7 +57,7 @@
 
 
 	/**
-	 * @since 2.0
+	 * @since 6.0
 	 */
 	public IRemoteServices getRemoteServices() {
 		return null;
@@ -82,10 +82,10 @@
 
 
 	/* (non-Javadoc)
-	 * @see org.eclipse.ptp.rdt.core.serviceproviders.IRemoteExecutionServiceProvider#setRemoteToolsConnection(org.eclipse.ptp.remote.core.IRemoteConnection)
+	 * @see org.eclipse.ptp.rdt.core.serviceproviders.IRemoteExecutionServiceProvider#setRemoteToolsConnection(org.eclipse.remote.core.IRemoteConnection)
 	 */
 	/**
-	 * @since 3.1
+	 * @since 6.0
 	 */
 	public void setRemoteToolsConnection(IRemoteConnection connection) {
 		// TODO Auto-generated method stub
diff --git a/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/serviceproviders/RemoteBuildServiceProvider.java b/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/serviceproviders/RemoteBuildServiceProvider.java
index 0e2095c..fd61351 100644
--- a/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/serviceproviders/RemoteBuildServiceProvider.java
+++ b/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/serviceproviders/RemoteBuildServiceProvider.java
@@ -21,11 +21,11 @@
 import org.eclipse.ptp.rdt.core.activator.Activator;
 import org.eclipse.ptp.rdt.core.serviceproviders.IRemoteExecutionServiceProvider;
 import org.eclipse.ptp.rdt.ui.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnectionManager;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.RemoteServices;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
 import org.eclipse.ptp.services.core.ServiceProvider;
 
 /**
@@ -59,7 +59,7 @@
 		// get the user's home directory
 		String homeDir = connection.getProperty(IRemoteConnection.USER_HOME_PROPERTY);
 		if (homeDir != null) {
-			IFileStore homeStore = remoteServices.getFileManager(connection).getResource(homeDir);
+			IFileStore homeStore = connection.getFileManager().getResource(homeDir);
 			URI uri = homeStore.toURI();
 			String pathString = EFSExtensionManager.getDefault().getPathFromURI(uri);
 			IPath path = new Path(pathString);
@@ -105,6 +105,9 @@
 	 * org.eclipse.ptp.rdt.core.serviceproviders.IRemoteExecutionServiceProvider
 	 * #getConnection()
 	 */
+	/**
+	 * @since 6.0
+	 */
 	public IRemoteConnection getConnection() {
 		IRemoteConnection conn = null;
 		if (getRemoteConnectionName() != null) {
@@ -145,6 +148,9 @@
 	 * org.eclipse.ptp.rdt.core.serviceproviders.IRemoteExecutionServiceProvider
 	 * #getRemoteServices()
 	 */
+	/**
+	 * @since 6.0
+	 */
 	public IRemoteServices getRemoteServices() {
 		return RemoteServices.getRemoteServices(getRemoteToolsProviderID());
 	}
@@ -168,6 +174,7 @@
 	 * services.
 	 * 
 	 * @param connection
+	 * @since 6.0
 	 */
 	public void setRemoteToolsConnection(IRemoteConnection connection) {
 		String name = ""; //$NON-NLS-1$
diff --git a/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/subsystems/StatusMonitor.java b/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/subsystems/StatusMonitor.java
index 5ad4cbe..b8229ea 100644
--- a/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/subsystems/StatusMonitor.java
+++ b/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/subsystems/StatusMonitor.java
@@ -33,9 +33,9 @@
 import org.eclipse.dstore.core.model.DataStoreSchema;
 import org.eclipse.dstore.extra.DomainEvent;
 import org.eclipse.dstore.extra.IDomainListener;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionChangeEvent;
-import org.eclipse.ptp.remote.core.IRemoteConnectionChangeListener;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnectionChangeEvent;
+import org.eclipse.remote.core.IRemoteConnectionChangeListener;
 import org.eclipse.swt.widgets.Display;
 
 /*
@@ -52,10 +52,16 @@
  *			smon.waitForUpdate(status, monitor);
  * </pre></blockquote>
  */
+/**
+ * @since 6.0
+ */
 public class StatusMonitor implements IDomainListener, IRemoteConnectionChangeListener {
 
 	private static Map<IRemoteConnection, StatusMonitor> fMonitors = new HashMap<IRemoteConnection, StatusMonitor>();
 	
+	/**
+	 * @since 6.0
+	 */
 	public static StatusMonitor getStatusMonitorFor(IRemoteConnection connection, DataStore store) {
 		StatusMonitor monitor = fMonitors.get(connection);
 		if (monitor == null) {
@@ -82,6 +88,7 @@
 	 *            the system associated with this monitor
 	 * @param dataStore
 	 *            the dataStore associated with this monitor
+	 * @since 6.0
 	 */
 	public StatusMonitor(IRemoteConnection connection, DataStore dataStore) {
 		fRemoteConnection = connection;
@@ -90,7 +97,10 @@
 	}
 
 	/* (non-Javadoc)
-	 * @see org.eclipse.ptp.remote.core.IRemoteConnectionChangeListener#connectionChanged(org.eclipse.ptp.remote.core.IRemoteConnectionChangeEvent)
+	 * @see org.eclipse.remote.core.IRemoteConnectionChangeListener#connectionChanged(org.eclipse.remote.core.IRemoteConnectionChangeEvent)
+	 */
+	/**
+	 * @since 6.0
 	 */
 	public void connectionChanged(IRemoteConnectionChangeEvent e) {
 		if (e.getType() == IRemoteConnectionChangeEvent.CONNECTION_CLOSED ||
diff --git a/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/wizards/NewRemoteProjectCreationPage.java b/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/wizards/NewRemoteProjectCreationPage.java
index 7c02267..29d5131 100644
--- a/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/wizards/NewRemoteProjectCreationPage.java
+++ b/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/wizards/NewRemoteProjectCreationPage.java
@@ -26,8 +26,8 @@
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ptp.rdt.ui.wizards.RemoteProjectContentsLocationArea.IErrorMessageReporter;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteServices;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteServices;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
@@ -266,10 +266,16 @@
 		return projectNameField.getText().trim();
 	}
 
+	/**
+	 * @since 6.0
+	 */
 	public IRemoteConnection getRemoteConnection() {
 		return locationArea.getRemoteConnection();
 	}
 
+	/**
+	 * @since 6.0
+	 */
 	public IRemoteServices getRemoteServices() {
 		return locationArea.getRemoteServices();
 	}
diff --git a/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/wizards/RemoteBuildServiceFileLocationWidget.java b/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/wizards/RemoteBuildServiceFileLocationWidget.java
index 1675765..7813c96 100644
--- a/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/wizards/RemoteBuildServiceFileLocationWidget.java
+++ b/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/wizards/RemoteBuildServiceFileLocationWidget.java
@@ -23,11 +23,11 @@
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.ptp.internal.rdt.ui.RSEUtils;
 import org.eclipse.ptp.rdt.ui.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.ui.IRemoteUIConstants;
-import org.eclipse.ptp.remote.ui.IRemoteUIFileManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIServices;
-import org.eclipse.ptp.remote.ui.RemoteUIServices;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.ui.IRemoteUIConstants;
+import org.eclipse.remote.ui.IRemoteUIFileManager;
+import org.eclipse.remote.ui.IRemoteUIServices;
+import org.eclipse.remote.ui.RemoteUIServices;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
@@ -58,7 +58,7 @@
 	private final Map<String, String> previousSelections = new HashMap<String, String>();
 
 	/**
-	 * @since 5.0
+	 * @since 6.0
 	 */
 	public RemoteBuildServiceFileLocationWidget(Composite parent, int style,
 			IRemoteConnection initialConnection, String defaultPath) {
@@ -118,6 +118,9 @@
 			text.setText(defaultPath);
 	}
 
+	/**
+	 * @since 6.0
+	 */
 	public IRemoteConnection getConnection() {
 		return fRemoteConnection;
 	}
@@ -140,14 +143,14 @@
 	// }
 
 	/**
-	 * @since 5.0
+	 * @since 6.0
 	 */
 	public static String getDefaultPath(IRemoteConnection connection) {
 		// get the user's home directory
 		if(connection != null && connection.isOpen()) {
 			String homeDir = connection.getProperty(IRemoteConnection.USER_HOME_PROPERTY);
 			if (homeDir != null) {
-				IFileStore homeStore = connection.getRemoteServices().getFileManager(connection).getResource(homeDir);
+				IFileStore homeStore = connection.getFileManager().getResource(homeDir);
 				URI uri = homeStore.toURI();
 				String pathString = EFSExtensionManager.getDefault().getPathFromURI(uri);
 				if(pathString!=null){
@@ -195,7 +198,7 @@
 	}
 
 	/**
-	 * @since 5.0
+	 * @since 6.0
 	 */
 	public void update(IRemoteConnection connection) {
 		fRemoteConnection = connection;
diff --git a/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/wizards/RemoteCommonProjectWizard.java b/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/wizards/RemoteCommonProjectWizard.java
index faec54c..eb221e7 100644
--- a/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/wizards/RemoteCommonProjectWizard.java
+++ b/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/wizards/RemoteCommonProjectWizard.java
@@ -70,8 +70,8 @@
 import org.eclipse.ptp.rdt.ui.serviceproviders.IRemoteToolsIndexServiceProvider;
 import org.eclipse.ptp.rdt.ui.serviceproviders.RSECIndexServiceProvider;
 import org.eclipse.ptp.rdt.ui.serviceproviders.RemoteBuildServiceProvider;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteServices;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteServices;
 import org.eclipse.ptp.services.core.IService;
 import org.eclipse.ptp.services.core.IServiceConfiguration;
 import org.eclipse.ptp.services.core.IServiceModelManager;
diff --git a/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/wizards/RemoteProjectContentsLocationArea.java b/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/wizards/RemoteProjectContentsLocationArea.java
index e16c5a4..44b6219 100644
--- a/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/wizards/RemoteProjectContentsLocationArea.java
+++ b/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/wizards/RemoteProjectContentsLocationArea.java
@@ -19,15 +19,15 @@
 import org.eclipse.jface.operation.IRunnableContext;
 import org.eclipse.ptp.rdt.ui.messages.Messages;
 import org.eclipse.ptp.rdt.ui.serviceproviders.RemoteBuildServiceProvider;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.ui.IRemoteUIConnectionManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIConstants;
-import org.eclipse.ptp.remote.ui.IRemoteUIFileManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIServices;
-import org.eclipse.ptp.remote.ui.RemoteUIServices;
-import org.eclipse.ptp.remote.ui.widgets.RemoteConnectionWidget;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.ui.IRemoteUIConnectionManager;
+import org.eclipse.remote.ui.IRemoteUIConstants;
+import org.eclipse.remote.ui.IRemoteUIFileManager;
+import org.eclipse.remote.ui.IRemoteUIServices;
+import org.eclipse.remote.ui.RemoteUIServices;
+import org.eclipse.remote.ui.widgets.RemoteConnectionWidget;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
@@ -156,6 +156,7 @@
 
 	/**
 	 * Returns the name of the selected connection.
+	 * @since 6.0
 	 */
 	public IRemoteConnection getConnection() {
 		return fSelectedConnection;
@@ -178,13 +179,19 @@
 	public URI getProjectLocationURI() {
 		if (fSelectedConnection == null)
 			return null;
-		return fSelectedConnection.getRemoteServices().getFileManager(fSelectedConnection).toURI(fLocationText.getText());
+		return fSelectedConnection.getFileManager().toURI(fLocationText.getText());
 	}
 
+	/**
+	 * @since 6.0
+	 */
 	public IRemoteConnection getRemoteConnection() {
 		return fSelectedConnection;
 	}
 
+	/**
+	 * @since 6.0
+	 */
 	public IRemoteServices getRemoteServices() {
 		if (fSelectedConnection != null)
 			return fSelectedConnection.getRemoteServices();
@@ -248,7 +255,7 @@
 	 */
 	private String getDefaultPathDisplayString() {
 		if (getRemoteConnection() != null && getRemoteConnection().isOpen()) {
-			IRemoteFileManager fileMgr = fSelectedConnection.getRemoteServices().getFileManager(getRemoteConnection());
+			IRemoteFileManager fileMgr = getRemoteConnection().getFileManager();
 			URI defaultURI = fileMgr.toURI(getRemoteConnection().getWorkingDirectory());
 
 			// Handle files specially. Assume a file if there is no project to
@@ -287,7 +294,7 @@
 		GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
 		container.setLayoutData(gd);
 		
-		fRemoteConnectionWidget = new RemoteConnectionWidget(container, SWT.NONE, null, RemoteConnectionWidget.FLAG_FORCE_PROVIDER_SELECTION, null);
+		fRemoteConnectionWidget = new RemoteConnectionWidget(container, SWT.NONE, null, RemoteConnectionWidget.FLAG_FORCE_PROVIDER_SELECTION);
 		gd = new GridData();
 		gd.horizontalSpan = 3;
 		fRemoteConnectionWidget.setLayoutData(gd);
diff --git a/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/wizards/RemoteServicesServiceProviderContributor.java b/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/wizards/RemoteServicesServiceProviderContributor.java
index 955b529..cd739fb 100644
--- a/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/wizards/RemoteServicesServiceProviderContributor.java
+++ b/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/wizards/RemoteServicesServiceProviderContributor.java
@@ -14,10 +14,10 @@
 import org.eclipse.jface.wizard.IWizardPage;
 import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.ptp.rdt.ui.serviceproviders.RemoteBuildServiceProvider;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.ui.IRemoteUIConnectionManager;
-import org.eclipse.ptp.remote.ui.RemoteUIServices;
-import org.eclipse.ptp.remote.ui.widgets.RemoteConnectionWidget;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.ui.IRemoteUIConnectionManager;
+import org.eclipse.remote.ui.RemoteUIServices;
+import org.eclipse.remote.ui.widgets.RemoteConnectionWidget;
 import org.eclipse.ptp.services.core.IServiceProvider;
 import org.eclipse.ptp.services.core.IServiceProviderWorkingCopy;
 import org.eclipse.ptp.services.ui.IServiceProviderContributor;
@@ -54,7 +54,7 @@
         layout.numColumns = 1;
         container.setLayout(layout);
         
-        fRemoteConnectionWidget = new RemoteConnectionWidget(container, SWT.NONE, null, RemoteConnectionWidget.FLAG_FORCE_PROVIDER_SELECTION, null);
+        fRemoteConnectionWidget = new RemoteConnectionWidget(container, SWT.NONE, null, RemoteConnectionWidget.FLAG_FORCE_PROVIDER_SELECTION);
         fRemoteConnectionWidget.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false));
         fRemoteConnectionWidget.addSelectionListener(new SelectionAdapter() {
 			@Override
diff --git a/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/wizards/ServiceModelWizardPage.java b/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/wizards/ServiceModelWizardPage.java
index cada4e0..749a097 100755
--- a/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/wizards/ServiceModelWizardPage.java
+++ b/rdt/org.eclipse.ptp.rdt.ui/src/org/eclipse/ptp/rdt/ui/wizards/ServiceModelWizardPage.java
@@ -28,8 +28,8 @@
 import org.eclipse.ptp.rdt.ui.serviceproviders.IRemoteToolsIndexServiceProvider;
 import org.eclipse.ptp.rdt.ui.serviceproviders.RSECIndexServiceProvider;
 import org.eclipse.ptp.rdt.ui.serviceproviders.RemoteBuildServiceProvider;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteServices;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteServices;
 import org.eclipse.ptp.services.core.IService;
 import org.eclipse.ptp.services.core.IServiceConfiguration;
 import org.eclipse.ptp.services.core.IServiceModelManager;
diff --git a/rdt/org.eclipse.ptp.rdt.xlc/pom.xml b/rdt/org.eclipse.ptp.rdt.xlc/pom.xml
index f6f9423..4907632 100644
--- a/rdt/org.eclipse.ptp.rdt.xlc/pom.xml
+++ b/rdt/org.eclipse.ptp.rdt.xlc/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/releng/org.eclipse.ptp-feature/feature.xml b/releng/org.eclipse.ptp-feature/feature.xml
index db71bb1..3cd81af 100644
--- a/releng/org.eclipse.ptp-feature/feature.xml
+++ b/releng/org.eclipse.ptp-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://eclipse.org/ptp">
@@ -34,10 +34,6 @@
          version="0.0.0"/>
 
    <includes
-         id="org.eclipse.ptp.remote"
-         version="0.0.0"/>
-
-   <includes
          id="org.eclipse.ptp.remote.remotetools"
          version="0.0.0"/>
 
@@ -77,6 +73,10 @@
          id="org.eclipse.ptp.rdt.sync.cdt"
          version="0.0.0"/>
 
+   <includes
+         id="org.eclipse.ptp.remote"
+         version="0.0.0"/>
+
    <plugin
          id="org.eclipse.ptp"
          download-size="0"
diff --git a/releng/org.eclipse.ptp-feature/pom.xml b/releng/org.eclipse.ptp-feature/pom.xml
index 367e57c..cfadd60 100644
--- a/releng/org.eclipse.ptp-feature/pom.xml
+++ b/releng/org.eclipse.ptp-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp-product/plugin_customization.ini b/releng/org.eclipse.ptp-product/plugin_customization.ini
new file mode 100644
index 0000000..333fab9
--- /dev/null
+++ b/releng/org.eclipse.ptp-product/plugin_customization.ini
@@ -0,0 +1 @@
+org.eclipse.ui/SHOW_PROGRESS_ON_STARTUP = true
diff --git a/releng/org.eclipse.ptp.aix/META-INF/MANIFEST.MF b/releng/org.eclipse.ptp.aix/META-INF/MANIFEST.MF
index 81a9369..8e8fec5 100644
--- a/releng/org.eclipse.ptp.aix/META-INF/MANIFEST.MF
+++ b/releng/org.eclipse.ptp.aix/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %fragmentName
 Bundle-SymbolicName: org.eclipse.ptp.aix;singleton:=true
-Bundle-Version: 7.0.5.qualifier
+Bundle-Version: 8.0.0.qualifier
 Fragment-Host: org.eclipse.ptp.core;bundle-version="2.0.0"
 Bundle-Localization: plugin
 Bundle-Vendor: %pluginProvider
diff --git a/releng/org.eclipse.ptp.aix/pom.xml b/releng/org.eclipse.ptp.aix/pom.xml
index a3ccb80..e7fc796 100644
--- a/releng/org.eclipse.ptp.aix/pom.xml
+++ b/releng/org.eclipse.ptp.aix/pom.xml
@@ -6,11 +6,11 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.aix</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/releng/org.eclipse.ptp.cdt.compilers-feature/feature.xml b/releng/org.eclipse.ptp.cdt.compilers-feature/feature.xml
index 16a1fdd..e408dc8 100644
--- a/releng/org.eclipse.ptp.cdt.compilers-feature/feature.xml
+++ b/releng/org.eclipse.ptp.cdt.compilers-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.cdt.compilers"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://eclipse.org/ptp">
diff --git a/releng/org.eclipse.ptp.core-feature/feature.xml b/releng/org.eclipse.ptp.core-feature/feature.xml
index dd36dbe..02ee77e 100644
--- a/releng/org.eclipse.ptp.core-feature/feature.xml
+++ b/releng/org.eclipse.ptp.core-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.core"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://eclipse.org/ptp">
@@ -74,20 +74,6 @@
          unpack="false"/>
 
    <plugin
-         id="org.eclipse.ptp.remote.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ptp.remote.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
          id="org.eclipse.ptp.ems.core"
          download-size="0"
          install-size="0"
diff --git a/releng/org.eclipse.ptp.core-feature/pom.xml b/releng/org.eclipse.ptp.core-feature/pom.xml
index d56ae6c..8a92991 100644
--- a/releng/org.eclipse.ptp.core-feature/pom.xml
+++ b/releng/org.eclipse.ptp.core-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.core</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.core.source-feature/feature.xml b/releng/org.eclipse.ptp.core.source-feature/feature.xml
index 2d867ef..b8d6231 100644
--- a/releng/org.eclipse.ptp.core.source-feature/feature.xml
+++ b/releng/org.eclipse.ptp.core.source-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.core.source"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://eclipse.org/ptp">
@@ -60,20 +60,6 @@
          unpack="false"/>
 
    <plugin
-         id="org.eclipse.ptp.remote.core.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ptp.remote.ui.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
          id="org.eclipse.ptp.services.core.source"
          download-size="0"
          install-size="0"
diff --git a/releng/org.eclipse.ptp.core.source-feature/pom.xml b/releng/org.eclipse.ptp.core.source-feature/pom.xml
index 590af25..c67fbcc 100644
--- a/releng/org.eclipse.ptp.core.source-feature/pom.xml
+++ b/releng/org.eclipse.ptp.core.source-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.core.source</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.etfw-feature/feature.xml b/releng/org.eclipse.ptp.etfw-feature/feature.xml
index b163457..87307c8 100644
--- a/releng/org.eclipse.ptp.etfw-feature/feature.xml
+++ b/releng/org.eclipse.ptp.etfw-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.etfw"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description>
@@ -34,7 +34,6 @@
       <import plugin="org.eclipse.ptp.etfw" version="1.0.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.ui.editors"/>
       <import plugin="org.eclipse.ui.ide" version="3.5.1" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.ptp.remote.core"/>
    </requires>
 
    <plugin
diff --git a/releng/org.eclipse.ptp.etfw-feature/pom.xml b/releng/org.eclipse.ptp.etfw-feature/pom.xml
index 6576ffc..ba97ddf 100644
--- a/releng/org.eclipse.ptp.etfw-feature/pom.xml
+++ b/releng/org.eclipse.ptp.etfw-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.etfw</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.etfw.feedback.perfsuite-feature/.project b/releng/org.eclipse.ptp.etfw.feedback.perfsuite-feature/.project
new file mode 100644
index 0000000..bd47c2d
--- /dev/null
+++ b/releng/org.eclipse.ptp.etfw.feedback.perfsuite-feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.ptp.etfw.feedback.perfsuite-feature</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.FeatureBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.FeatureNature</nature>
+	</natures>
+</projectDescription>
diff --git a/releng/org.eclipse.ptp.etfw.feedback.perfsuite-feature/build.properties b/releng/org.eclipse.ptp.etfw.feedback.perfsuite-feature/build.properties
new file mode 100644
index 0000000..f7f4d2e
--- /dev/null
+++ b/releng/org.eclipse.ptp.etfw.feedback.perfsuite-feature/build.properties
@@ -0,0 +1,4 @@
+bin.includes = feature.xml,\
+               feature.properties,\
+               eclipse_update_120.jpg,\
+               license.html
diff --git a/releng/org.eclipse.ptp.etfw.feedback.perfsuite-feature/eclipse_update_120.jpg b/releng/org.eclipse.ptp.etfw.feedback.perfsuite-feature/eclipse_update_120.jpg
new file mode 100644
index 0000000..bfdf708
--- /dev/null
+++ b/releng/org.eclipse.ptp.etfw.feedback.perfsuite-feature/eclipse_update_120.jpg
Binary files differ
diff --git a/releng/org.eclipse.ptp.etfw.feedback.perfsuite-feature/epl-v10.html b/releng/org.eclipse.ptp.etfw.feedback.perfsuite-feature/epl-v10.html
new file mode 100644
index 0000000..ed4b196
--- /dev/null
+++ b/releng/org.eclipse.ptp.etfw.feedback.perfsuite-feature/epl-v10.html
@@ -0,0 +1,328 @@
+<html xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<meta name=ProgId content=Word.Document>
+<meta name=Generator content="Microsoft Word 9">
+<meta name=Originator content="Microsoft Word 9">
+<link rel=File-List
+href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
+<title>Eclipse Public License - Version 1.0</title>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+  <o:Revision>2</o:Revision>
+  <o:TotalTime>3</o:TotalTime>
+  <o:Created>2004-03-05T23:03:00Z</o:Created>
+  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
+  <o:Pages>4</o:Pages>
+  <o:Words>1626</o:Words>
+  <o:Characters>9270</o:Characters>
+   <o:Lines>77</o:Lines>
+  <o:Paragraphs>18</o:Paragraphs>
+  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
+  <o:Version>9.4402</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:WordDocument>
+  <w:TrackRevisions/>
+ </w:WordDocument>
+</xml><![endif]-->
+<style>
+<!--
+ /* Font Definitions */
+@font-face
+	{font-family:Tahoma;
+	panose-1:2 11 6 4 3 5 4 4 2 4;
+	mso-font-charset:0;
+	mso-generic-font-family:swiss;
+	mso-font-pitch:variable;
+	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
+ /* Style Definitions */
+p.MsoNormal, li.MsoNormal, div.MsoNormal
+	{mso-style-parent:"";
+	margin:0in;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p
+	{margin-right:0in;
+	mso-margin-top-alt:auto;
+	mso-margin-bottom-alt:auto;
+	margin-left:0in;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.BalloonText, li.BalloonText, div.BalloonText
+	{mso-style-name:"Balloon Text";
+	margin:0in;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:8.0pt;
+	font-family:Tahoma;
+	mso-fareast-font-family:"Times New Roman";}
+@page Section1
+	{size:8.5in 11.0in;
+	margin:1.0in 1.25in 1.0in 1.25in;
+	mso-header-margin:.5in;
+	mso-footer-margin:.5in;
+	mso-paper-source:0;}
+div.Section1
+	{page:Section1;}
+-->
+</style>
+</head>
+
+<body lang=EN-US style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
+</p>
+
+<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
+THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
+REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
+OF THIS AGREEMENT.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+in the case of the initial Contributor, the initial code and documentation
+distributed under this Agreement, and<br clear=left>
+b) in the case of each subsequent Contributor:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+changes to the Program, and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+additions to the Program;</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
+such changes and/or additions to the Program originate from and are distributed
+by that particular Contributor. A Contribution 'originates' from a Contributor
+if it was added to the Program by such Contributor itself or anyone acting on
+such Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in conjunction
+with the Program under their own license agreement, and (ii) are not derivative
+works of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
+entity that distributes the Program.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
+claims licensable by a Contributor which are necessarily infringed by the use
+or sale of its Contribution alone or when combined with the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
+distributed in accordance with this Agreement.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
+receives the Program under this Agreement, including all Contributors.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+Subject to the terms of this Agreement, each Contributor hereby grants Recipient
+a non-exclusive, worldwide, royalty-free copyright license to<span
+style='color:red'> </span>reproduce, prepare derivative works of, publicly
+display, publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and object code
+form.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
+patent license under Licensed Patents to make, use, sell, offer to sell, import
+and otherwise transfer the Contribution of such Contributor, if any, in source
+code and object code form. This patent license shall apply to the combination
+of the Contribution and the Program if, at the time the Contribution is added
+by the Contributor, such addition of the Contribution causes such combination
+to be covered by the Licensed Patents. The patent license shall not apply to
+any other combinations which include the Contribution. No hardware per se is
+licensed hereunder. </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
+Recipient understands that although each Contributor grants the licenses to its
+Contributions set forth herein, no assurances are provided by any Contributor
+that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient
+for claims brought by any other entity based on infringement of intellectual
+property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For example,
+if a third party patent license is required to allow Recipient to distribute
+the Program, it is Recipient's responsibility to acquire that license before
+distributing the Program.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
+Each Contributor represents that to its knowledge it has sufficient copyright
+rights in its Contribution, if any, to grant the copyright license set forth in
+this Agreement. </span></p>
+
+<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
+Program in object code form under its own license agreement, provided that:</span>
+</p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it complies with the terms and conditions of this Agreement; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+its license agreement:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title
+and non-infringement, and implied warranties or conditions of merchantability
+and fitness for a particular purpose; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+effectively excludes on behalf of all Contributors all liability for damages,
+including direct, indirect, special, incidental and consequential damages, such
+as lost profits; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
+states that any provisions which differ from this Agreement are offered by that
+Contributor alone and not by any other party; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
+states that source code for the Program is available from such Contributor, and
+informs licensees how to obtain it in a reasonable manner on or through a
+medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
+
+<p><span style='font-size:10.0pt'>When the Program is made available in source
+code form:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it must be made available under this Agreement; and </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
+copy of this Agreement must be included with each copy of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
+copyright notices contained within the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
+originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution. </span></p>
+
+<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
+
+<p><span style='font-size:10.0pt'>Commercial distributors of software may
+accept certain responsibilities with respect to end users, business partners
+and the like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes the
+Program in a commercial product offering, such Contributor (&quot;Commercial
+Contributor&quot;) hereby agrees to defend and indemnify every other
+Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
+costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
+legal actions brought by a third party against the Indemnified Contributor to
+the extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor
+to control, and cooperate with the Commercial Contributor in, the defense and
+any related settlement negotiations. The Indemnified Contributor may participate
+in any such claim at its own expense.</span> </p>
+
+<p><span style='font-size:10.0pt'>For example, a Contributor might include the
+Program in a commercial product offering, Product X. That Contributor is then a
+Commercial Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance claims and
+warranties are such Commercial Contributor's responsibility alone. Under this
+section, the Commercial Contributor would have to defend claims against the
+other Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and distributing the
+Program and assumes all risks associated with its exercise of rights under this
+Agreement , including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs or
+equipment, and unavailability or interruption of operations. </span></p>
+
+<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
+THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
+
+<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
+or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without
+further action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.</span> </p>
+
+<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
+against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with
+other software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the date
+such litigation is filed. </span></p>
+
+<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
+shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable
+period of time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive. </span></p>
+
+<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
+copies of this Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The Agreement
+Steward reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement Steward has
+the right to modify this Agreement. The Eclipse Foundation is the initial
+Agreement Steward. The Eclipse Foundation may assign the responsibility to
+serve as the Agreement Steward to a suitable separate entity. Each new version
+of the Agreement will be given a distinguishing version number. The Program
+(including Contributions) may always be distributed subject to the version of
+the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly stated
+in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.</span> </p>
+
+<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
+State of New York and the intellectual property laws of the United States of
+America. No party to this Agreement will bring a legal action under this
+Agreement more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.</span> </p>
+
+<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+</div>
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/releng/org.eclipse.ptp.etfw.feedback.perfsuite-feature/feature.properties b/releng/org.eclipse.ptp.etfw.feedback.perfsuite-feature/feature.properties
new file mode 100644
index 0000000..d1d25d8
--- /dev/null
+++ b/releng/org.eclipse.ptp.etfw.feedback.perfsuite-feature/feature.properties
@@ -0,0 +1,152 @@
+# "featureName" property - name of the feature
+featureName=PTP ETFw PerfSuite
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse PTP
+
+# "description" property - description of the feature
+description=Extends the external tools framework with capabilities for viewing output \n
+of the PerfSuite set of performance analysis tools.  Extends the ETFw Feedback framework \n
+to allow mapping of artifacts found in PerfSuite analysis to source code lines. \n
+
+
+# copyright
+copyright=\
+Copyright (c) 2013\n\
+   University of Illinois\n\
+\n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+Eclipse Foundation Software User Agreement\n\
+February 1, 2011\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the\n\
+Eclipse Foundation is provided to you under the terms and conditions of\n\
+the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
+provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse Foundation source code\n\
+repository ("Repository") in software modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+       - Content may be structured and packaged into modules to facilitate delivering,\n\
+         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+         plug-in fragments ("Fragments"), and features ("Features").\n\
+       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
+         in a directory named "plugins".\n\
+       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+       - The top-level (root) directory\n\
+       - Plug-in and Fragment directories\n\
+       - Inside Plug-ins and Fragments packaged as JARs\n\
+       - Sub-directories of the directory named "src" of certain Plug-ins\n\
+       - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
+Update License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties" found within a Feature.\n\
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
+terms and conditions (or references to such terms and conditions) that\n\
+govern your use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+       - Eclipse Distribution License Version 1.0 (available at http://www.eclipse.org/licenses/edl-v1.0.html)\n\
+       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+\n\Use of Provisioning Technology\n\
+\n\
+The Eclipse Foundation makes available provisioning software, examples of which include,\n\
+but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
+the purpose of allowing users to install software, documentation, information and/or\n\
+other materials (collectively "Installable Software"). This capability is provided with\n\
+the intent of allowing such users to install, extend and update Eclipse-based products.\n\
+Information about packaging Installable Software is available at\n\
+http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
+\n\
+You may use Provisioning Technology to allow other parties to install Installable Software.\n\
+You shall be responsible for enabling the applicable license agreements relating to the\n\
+Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
+in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
+making it available in accordance with the Specification, you further acknowledge your\n\
+agreement to, and the acquisition of all necessary rights to permit the following:\n\
+\n\
+       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
+          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
+          extending or updating the functionality of an Eclipse-based product.\n\
+       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
+          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
+       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
+          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
+          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
+          with the Specification. Such Installable Software Agreement must inform the user of the\n\
+          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
+          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
+          indication of agreement by the user, the provisioning Technology will complete installation\n\
+          of the Installable Software.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use, and\n\
+re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
diff --git a/releng/org.eclipse.ptp.etfw.feedback.perfsuite-feature/feature.xml b/releng/org.eclipse.ptp.etfw.feedback.perfsuite-feature/feature.xml
new file mode 100644
index 0000000..061a9d3
--- /dev/null
+++ b/releng/org.eclipse.ptp.etfw.feedback.perfsuite-feature/feature.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.eclipse.ptp.etfw.feedback.perfsuite"
+      label="%featureName"
+      version="8.0.0.qualifier"
+      provider-name="%providerName">
+
+   <description url="http://eclipse.org/ptp">
+      %description
+   </description>
+
+   <copyright>
+      %copyright
+   </copyright>
+
+   <license url="%licenseURL">
+      %license
+   </license>
+
+   <plugin
+         id="org.eclipse.ptp.etfw.feedback.perfsuite"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.ptp.etfw.feedback.perfsuite.doc.user"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"/>
+
+</feature>
diff --git a/releng/org.eclipse.ptp.etfw.feedback.perfsuite-feature/license.html b/releng/org.eclipse.ptp.etfw.feedback.perfsuite-feature/license.html
new file mode 100644
index 0000000..c184ca3
--- /dev/null
+++ b/releng/org.eclipse.ptp.etfw.feedback.perfsuite-feature/license.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 14, 2010</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/core/org.eclipse.ptp.remote.core/pom.xml b/releng/org.eclipse.ptp.etfw.feedback.perfsuite-feature/pom.xml
similarity index 66%
copy from core/org.eclipse.ptp.remote.core/pom.xml
copy to releng/org.eclipse.ptp.etfw.feedback.perfsuite-feature/pom.xml
index e66b6e0..972c4b1 100644
--- a/core/org.eclipse.ptp.remote.core/pom.xml
+++ b/releng/org.eclipse.ptp.etfw.feedback.perfsuite-feature/pom.xml
@@ -6,11 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
-  <artifactId>org.eclipse.ptp.remote.core</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
-  <packaging>eclipse-plugin</packaging>
+  <artifactId>org.eclipse.ptp.etfw.feedback.perfsuite</artifactId>
+  <version>8.0.0-SNAPSHOT</version>
+  <packaging>eclipse-feature</packaging>
+  <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.etfw.tau-feature/feature.xml b/releng/org.eclipse.ptp.etfw.tau-feature/feature.xml
index ddb2eb3..7200719 100644
--- a/releng/org.eclipse.ptp.etfw.tau-feature/feature.xml
+++ b/releng/org.eclipse.ptp.etfw.tau-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.etfw.tau"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.cs.uoregon.edu/research/tau/home.php">
diff --git a/releng/org.eclipse.ptp.etfw.tau-feature/pom.xml b/releng/org.eclipse.ptp.etfw.tau-feature/pom.xml
index 20b7cd2..6a35f44 100644
--- a/releng/org.eclipse.ptp.etfw.tau-feature/pom.xml
+++ b/releng/org.eclipse.ptp.etfw.tau-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.etfw.tau</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.etfw.tau.fortran-feature/feature.xml b/releng/org.eclipse.ptp.etfw.tau.fortran-feature/feature.xml
index d26433b..5a03d55 100644
--- a/releng/org.eclipse.ptp.etfw.tau.fortran-feature/feature.xml
+++ b/releng/org.eclipse.ptp.etfw.tau.fortran-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.etfw.tau.fortran"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/releng/org.eclipse.ptp.etfw.tau.fortran-feature/pom.xml b/releng/org.eclipse.ptp.etfw.tau.fortran-feature/pom.xml
index 152b105..dab29eb 100644
--- a/releng/org.eclipse.ptp.etfw.tau.fortran-feature/pom.xml
+++ b/releng/org.eclipse.ptp.etfw.tau.fortran-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.etfw.tau.fortran</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.fortran-feature/feature.xml b/releng/org.eclipse.ptp.fortran-feature/feature.xml
index 55d04ff..63aad29 100644
--- a/releng/org.eclipse.ptp.fortran-feature/feature.xml
+++ b/releng/org.eclipse.ptp.fortran-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.fortran"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/releng/org.eclipse.ptp.fortran-feature/pom.xml b/releng/org.eclipse.ptp.fortran-feature/pom.xml
index ee7c451..010c3ec 100644
--- a/releng/org.eclipse.ptp.fortran-feature/pom.xml
+++ b/releng/org.eclipse.ptp.fortran-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.fortran</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.gem-feature/feature.xml b/releng/org.eclipse.ptp.gem-feature/feature.xml
index 04c949f..76c8419 100644
--- a/releng/org.eclipse.ptp.gem-feature/feature.xml
+++ b/releng/org.eclipse.ptp.gem-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.gem"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%featureProvider">
 
    <description url="http://eclipse.org/ptp">
diff --git a/releng/org.eclipse.ptp.gem-feature/pom.xml b/releng/org.eclipse.ptp.gem-feature/pom.xml
index ff56b95..6fd062e 100644
--- a/releng/org.eclipse.ptp.gem-feature/pom.xml
+++ b/releng/org.eclipse.ptp.gem-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.gem</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.gig-feature/feature.xml b/releng/org.eclipse.ptp.gig-feature/feature.xml
index af45ebe..5f614eb 100644
--- a/releng/org.eclipse.ptp.gig-feature/feature.xml
+++ b/releng/org.eclipse.ptp.gig-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.gig"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://eclipse.org/ptp">
diff --git a/releng/org.eclipse.ptp.license-feature/feature.xml b/releng/org.eclipse.ptp.license-feature/feature.xml
index 7067eb5..6f83b4d 100644
--- a/releng/org.eclipse.ptp.license-feature/feature.xml
+++ b/releng/org.eclipse.ptp.license-feature/feature.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <feature
       id="org.eclipse.ptp.license"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       image="eclipse_update_120.jpg">
 
    <description>
diff --git a/releng/org.eclipse.ptp.linux/META-INF/MANIFEST.MF b/releng/org.eclipse.ptp.linux/META-INF/MANIFEST.MF
index f80c0a7..c260ddd 100644
--- a/releng/org.eclipse.ptp.linux/META-INF/MANIFEST.MF
+++ b/releng/org.eclipse.ptp.linux/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %fragmentName
 Bundle-SymbolicName: org.eclipse.ptp.linux;singleton:=true
-Bundle-Version: 7.0.5.qualifier
+Bundle-Version: 8.0.0.qualifier
 Fragment-Host: org.eclipse.ptp.core;bundle-version="2.0.0"
 Bundle-Localization: plugin
 Bundle-Vendor: %pluginProvider
diff --git a/releng/org.eclipse.ptp.linux/pom.xml b/releng/org.eclipse.ptp.linux/pom.xml
index 874ee2d..1b5a2a0 100644
--- a/releng/org.eclipse.ptp.linux/pom.xml
+++ b/releng/org.eclipse.ptp.linux/pom.xml
@@ -6,11 +6,11 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.linux</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/releng/org.eclipse.ptp.macosx/META-INF/MANIFEST.MF b/releng/org.eclipse.ptp.macosx/META-INF/MANIFEST.MF
index d6e52c2..a7d0465 100644
--- a/releng/org.eclipse.ptp.macosx/META-INF/MANIFEST.MF
+++ b/releng/org.eclipse.ptp.macosx/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %fragmentName
 Bundle-SymbolicName: org.eclipse.ptp.macosx;singleton:=true
-Bundle-Version: 7.0.5.qualifier
+Bundle-Version: 8.0.0.qualifier
 Fragment-Host: org.eclipse.ptp.core;bundle-version="2.0.0"
 Bundle-Localization: plugin
 Bundle-Vendor: %pluginProvider
diff --git a/releng/org.eclipse.ptp.macosx/pom.xml b/releng/org.eclipse.ptp.macosx/pom.xml
index 9605a94..260d1aa 100644
--- a/releng/org.eclipse.ptp.macosx/pom.xml
+++ b/releng/org.eclipse.ptp.macosx/pom.xml
@@ -6,11 +6,11 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.macosx</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/releng/org.eclipse.ptp.pldt-feature/feature.xml b/releng/org.eclipse.ptp.pldt-feature/feature.xml
index e143d3d..8adaebe 100644
--- a/releng/org.eclipse.ptp.pldt-feature/feature.xml
+++ b/releng/org.eclipse.ptp.pldt-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.pldt"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/releng/org.eclipse.ptp.pldt-feature/pom.xml b/releng/org.eclipse.ptp.pldt-feature/pom.xml
index 97f460e..8232916 100644
--- a/releng/org.eclipse.ptp.pldt-feature/pom.xml
+++ b/releng/org.eclipse.ptp.pldt-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.pldt</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.pldt.fortran-feature/feature.xml b/releng/org.eclipse.ptp.pldt.fortran-feature/feature.xml
index 37b0c9c..8311178 100644
--- a/releng/org.eclipse.ptp.pldt.fortran-feature/feature.xml
+++ b/releng/org.eclipse.ptp.pldt.fortran-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.pldt.fortran"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/releng/org.eclipse.ptp.pldt.fortran-feature/pom.xml b/releng/org.eclipse.ptp.pldt.fortran-feature/pom.xml
index 859865a..1a41baf 100644
--- a/releng/org.eclipse.ptp.pldt.fortran-feature/pom.xml
+++ b/releng/org.eclipse.ptp.pldt.fortran-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.pldt.fortran</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.pldt.upc-feature/feature.xml b/releng/org.eclipse.ptp.pldt.upc-feature/feature.xml
index 18fea4f..f6e4abe 100644
--- a/releng/org.eclipse.ptp.pldt.upc-feature/feature.xml
+++ b/releng/org.eclipse.ptp.pldt.upc-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.pldt.upc"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/releng/org.eclipse.ptp.pldt.upc-feature/pom.xml b/releng/org.eclipse.ptp.pldt.upc-feature/pom.xml
index 6db26c0..5c6e6ad 100644
--- a/releng/org.eclipse.ptp.pldt.upc-feature/pom.xml
+++ b/releng/org.eclipse.ptp.pldt.upc-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.pldt.upc</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.rdt-feature/feature.xml b/releng/org.eclipse.ptp.rdt-feature/feature.xml
index 2f6ac6a..70ff19b 100644
--- a/releng/org.eclipse.ptp.rdt-feature/feature.xml
+++ b/releng/org.eclipse.ptp.rdt-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.rdt"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://eclipse.org/ptp">
@@ -26,9 +26,7 @@
       <import plugin="org.eclipse.cdt.make.core" version="5.0.1" match="greaterOrEqual"/>
       <import plugin="org.eclipse.core.filesystem" version="1.2.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.cdt.managedbuilder.core" version="5.0.1" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.ptp.remote.core" version="2.0.1" match="greaterOrEqual"/>
       <import plugin="org.eclipse.dstore.extra" version="2.1.100" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.ptp.services.core" version="1.0.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.rse.services.dstore" version="3.1.1" match="greaterOrEqual"/>
       <import plugin="org.eclipse.cdt.ui" version="5.0.2" match="greaterOrEqual"/>
       <import plugin="org.eclipse.ui" version="3.4.0" match="greaterOrEqual"/>
@@ -48,8 +46,8 @@
       <import plugin="org.eclipse.cdt.managedbuilder.ui" version="5.0.1" match="greaterOrEqual"/>
       <import plugin="org.eclipse.rse.services.dstore" version="3.0.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.rse.subsystems.files.core" version="3.0.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.ptp.remote.ui" version="2.0.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.ui.console" version="3.3.0" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.ptp.services.core" version="1.0.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.ptp.services.ui" version="1.0.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.rse.files.ui"/>
       <import plugin="org.eclipse.cdt.make.ui"/>
@@ -60,6 +58,19 @@
       <import feature="org.eclipse.rse.ssh"/>
       <import feature="org.eclipse.rse.terminals"/>
       <import feature="org.eclipse.rse.useractions"/>
+      <import plugin="org.eclipse.remote.core"/>
+      <import plugin="org.eclipse.cdt.core.lrparser.xlc"/>
+      <import plugin="org.eclipse.cdt.core.parser.upc"/>
+      <import plugin="org.eclipse.cdt.make.xlc.core"/>
+      <import plugin="org.eclipse.text"/>
+      <import plugin="org.eclipse.remote.ui"/>
+      <import plugin="org.eclipse.debug.ui"/>
+      <import plugin="org.eclipse.cdt.debug.ui"/>
+      <import plugin="org.eclipse.ptp.rdt.editor" version="2.0.0" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.core.filesystem" version="1.3.1" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.cdt.managedbuilder.gnu.ui"/>
+      <import plugin="org.eclipse.ptp.rdt.managedbuilder.xlc.ui"/>
+      <import plugin="org.eclipse.ui.forms" version="3.4.0" match="greaterOrEqual"/>
    </requires>
 
    <plugin
diff --git a/releng/org.eclipse.ptp.rdt-feature/pom.xml b/releng/org.eclipse.ptp.rdt-feature/pom.xml
index 4772512..a1743a7 100644
--- a/releng/org.eclipse.ptp.rdt-feature/pom.xml
+++ b/releng/org.eclipse.ptp.rdt-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.rdt</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.rdt.editor-feature/feature.xml b/releng/org.eclipse.ptp.rdt.editor-feature/feature.xml
index e07466a..ab45cd7 100644
--- a/releng/org.eclipse.ptp.rdt.editor-feature/feature.xml
+++ b/releng/org.eclipse.ptp.rdt.editor-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.rdt.editor"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/releng/org.eclipse.ptp.rdt.editor-feature/pom.xml b/releng/org.eclipse.ptp.rdt.editor-feature/pom.xml
index 9b9190e..20d518a 100644
--- a/releng/org.eclipse.ptp.rdt.editor-feature/pom.xml
+++ b/releng/org.eclipse.ptp.rdt.editor-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.rdt.editor</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.rdt.remotejars-feature/feature.xml b/releng/org.eclipse.ptp.rdt.remotejars-feature/feature.xml
index 9ec0f1d..892aa3c 100644
--- a/releng/org.eclipse.ptp.rdt.remotejars-feature/feature.xml
+++ b/releng/org.eclipse.ptp.rdt.remotejars-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.rdt.remotejars"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/releng/org.eclipse.ptp.rdt.remotejars-feature/pom.xml b/releng/org.eclipse.ptp.rdt.remotejars-feature/pom.xml
index 14b358e..9adb22e 100644
--- a/releng/org.eclipse.ptp.rdt.remotejars-feature/pom.xml
+++ b/releng/org.eclipse.ptp.rdt.remotejars-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.rdt.remotejars</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.rdt.remotetools-feature/feature.xml b/releng/org.eclipse.ptp.rdt.remotetools-feature/feature.xml
index ee1f29d..30b66f9 100644
--- a/releng/org.eclipse.ptp.rdt.remotetools-feature/feature.xml
+++ b/releng/org.eclipse.ptp.rdt.remotetools-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.rdt.remotetools"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description>
@@ -25,10 +25,8 @@
       <import plugin="org.eclipse.jface" version="3.6.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.ui" version="3.6.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.cdt.core" version="5.2.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.ptp.remote.core" version="4.0.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.ptp.services.core" version="1.0.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.ptp.rdt.core" version="1.1.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.ptp.remote.ui" version="3.0.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.ptp.services.ui" version="1.0.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.ptp.rdt.ui" version="2.0.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.rse.connectorservice.dstore" version="3.1.1" match="greaterOrEqual"/>
diff --git a/releng/org.eclipse.ptp.rdt.remotetools-feature/pom.xml b/releng/org.eclipse.ptp.rdt.remotetools-feature/pom.xml
index d873a33..34e8ecf 100644
--- a/releng/org.eclipse.ptp.rdt.remotetools-feature/pom.xml
+++ b/releng/org.eclipse.ptp.rdt.remotetools-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.rdt.remotetools</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.rdt.sdk-feature/feature.xml b/releng/org.eclipse.ptp.rdt.sdk-feature/feature.xml
index 94df6d2..d2eb294 100644
--- a/releng/org.eclipse.ptp.rdt.sdk-feature/feature.xml
+++ b/releng/org.eclipse.ptp.rdt.sdk-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.rdt.sdk"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://eclipse.org/ptp">
diff --git a/releng/org.eclipse.ptp.rdt.sync-feature/feature.xml b/releng/org.eclipse.ptp.rdt.sync-feature/feature.xml
index 3044251..6de93bd 100644
--- a/releng/org.eclipse.ptp.rdt.sync-feature/feature.xml
+++ b/releng/org.eclipse.ptp.rdt.sync-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.rdt.sync"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/releng/org.eclipse.ptp.rdt.sync-feature/pom.xml b/releng/org.eclipse.ptp.rdt.sync-feature/pom.xml
index 6423ce8..6e89ebf 100644
--- a/releng/org.eclipse.ptp.rdt.sync-feature/pom.xml
+++ b/releng/org.eclipse.ptp.rdt.sync-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.rdt.sync</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.rdt.sync.cdt-feature/feature.xml b/releng/org.eclipse.ptp.rdt.sync.cdt-feature/feature.xml
index dcad3dd..00aae26 100644
--- a/releng/org.eclipse.ptp.rdt.sync.cdt-feature/feature.xml
+++ b/releng/org.eclipse.ptp.rdt.sync.cdt-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.rdt.sync.cdt"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/releng/org.eclipse.ptp.rdt.sync.cdt-feature/pom.xml b/releng/org.eclipse.ptp.rdt.sync.cdt-feature/pom.xml
index de25c89..f755774 100644
--- a/releng/org.eclipse.ptp.rdt.sync.cdt-feature/pom.xml
+++ b/releng/org.eclipse.ptp.rdt.sync.cdt-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.rdt.sync.cdt</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.rdt.sync.fortran-feature/feature.xml b/releng/org.eclipse.ptp.rdt.sync.fortran-feature/feature.xml
index 270c815..245100d 100644
--- a/releng/org.eclipse.ptp.rdt.sync.fortran-feature/feature.xml
+++ b/releng/org.eclipse.ptp.rdt.sync.fortran-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.rdt.sync.fortran"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/releng/org.eclipse.ptp.rdt.sync.fortran-feature/pom.xml b/releng/org.eclipse.ptp.rdt.sync.fortran-feature/pom.xml
index 0152eb6..ebb963e 100644
--- a/releng/org.eclipse.ptp.rdt.sync.fortran-feature/pom.xml
+++ b/releng/org.eclipse.ptp.rdt.sync.fortran-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.rdt.sync.fortran</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.rdt.xlc-feature/feature.xml b/releng/org.eclipse.ptp.rdt.xlc-feature/feature.xml
index 7b82a0b..a027ce3 100644
--- a/releng/org.eclipse.ptp.rdt.xlc-feature/feature.xml
+++ b/releng/org.eclipse.ptp.rdt.xlc-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.rdt.xlc"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description>
@@ -29,24 +29,25 @@
       <import plugin="org.eclipse.cdt.managedbuilder.xlc.core" version="5.0.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.cdt.managedbuilder.xlc.ui" version="6.0.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.ptp.rdt.core" version="1.0.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.ptp.remote.core" version="2.1.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.cdt.core" version="5.1.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.ptp.services.core" version="1.0.0" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.cdt.make.xlc.core" version="5.0.0" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.core.filesystem" version="1.2.0" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.ptp.rdt.ui" version="1.0.0" match="greaterOrEqual"/>
+      <import plugin="com.ibm.icu" version="3.8.1" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.cdt.managedbuilder.core" version="7.0.0" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.cdt.managedbuilder.xlupc.ui" version="1.1.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.rse.core" version="3.0.3" match="greaterOrEqual"/>
       <import plugin="org.eclipse.rse.files.ui" version="3.0.3" match="greaterOrEqual"/>
       <import plugin="org.eclipse.rse.subsystems.files.core" version="3.0.2" match="greaterOrEqual"/>
       <import plugin="org.eclipse.rse.services" version="3.0.1" match="greaterOrEqual"/>
       <import plugin="org.eclipse.rse.ui" version="3.0.3" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.ptp.rdt.ui" version="1.0.0" match="greaterOrEqual"/>
-      <import plugin="com.ibm.icu" version="3.8.1" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.cdt.make.xlc.core" version="5.0.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.core.filesystem" version="1.2.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.cdt.managedbuilder.core" version="7.0.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.cdt.managedbuilder.xlupc.ui" version="1.1.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.ptp.rdt.managedbuilder.xlc.ui" version="1.0.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.cdt.managedbuilder.xlc.ui" version="6.1.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.cdt.core.parser.upc" version="5.1.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.core.variables" version="3.2.300" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.remote.core"/>
+      <import plugin="org.eclipse.remote.ui"/>
    </requires>
 
    <plugin
diff --git a/releng/org.eclipse.ptp.rdt.xlc-feature/pom.xml b/releng/org.eclipse.ptp.rdt.xlc-feature/pom.xml
index 19678f4..6e5d058 100644
--- a/releng/org.eclipse.ptp.rdt.xlc-feature/pom.xml
+++ b/releng/org.eclipse.ptp.rdt.xlc-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.rdt.xlc</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.rdt.xlc.sdk-feature/feature.xml b/releng/org.eclipse.ptp.rdt.xlc.sdk-feature/feature.xml
index 9527a57..9a2d2ec 100644
--- a/releng/org.eclipse.ptp.rdt.xlc.sdk-feature/feature.xml
+++ b/releng/org.eclipse.ptp.rdt.xlc.sdk-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.rdt.xlc.sdk"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/releng/org.eclipse.ptp.remote-feature/feature.xml b/releng/org.eclipse.ptp.remote-feature/feature.xml
index a44a639..f660c65 100644
--- a/releng/org.eclipse.ptp.remote-feature/feature.xml
+++ b/releng/org.eclipse.ptp.remote-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.remote"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://eclipse.org/ptp">
@@ -28,20 +28,6 @@
    </requires>
 
    <plugin
-         id="org.eclipse.ptp.remote.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ptp.remote.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
          id="org.eclipse.ptp.remote.server.core"
          download-size="0"
          install-size="0"
diff --git a/releng/org.eclipse.ptp.remote-feature/pom.xml b/releng/org.eclipse.ptp.remote-feature/pom.xml
index 69335c5..e82284f 100644
--- a/releng/org.eclipse.ptp.remote-feature/pom.xml
+++ b/releng/org.eclipse.ptp.remote-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.remote</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.remote.remotetools-feature/feature.xml b/releng/org.eclipse.ptp.remote.remotetools-feature/feature.xml
index 65e6da5..d476874 100644
--- a/releng/org.eclipse.ptp.remote.remotetools-feature/feature.xml
+++ b/releng/org.eclipse.ptp.remote.remotetools-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.remote.remotetools"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://eclipse.org/ptp">
@@ -20,15 +20,14 @@
    <requires>
       <import plugin="org.eclipse.core.runtime"/>
       <import plugin="org.eclipse.core.filesystem"/>
-      <import plugin="org.eclipse.ptp.remote.core"/>
       <import plugin="org.eclipse.ptp.remotetools.core"/>
       <import plugin="org.eclipse.ptp.remotetools.environment.core"/>
-      <import plugin="org.eclipse.ptp.remotetools.utils"/>
-      <import plugin="org.eclipse.ptp.remotetools.preferences"/>
       <import plugin="org.eclipse.ui"/>
       <import plugin="org.eclipse.ui.ide"/>
-      <import plugin="org.eclipse.ptp.remote.remotetools.core"/>
-      <import plugin="org.eclipse.ptp.remote.ui"/>
+      <import plugin="org.eclipse.remote.core"/>
+      <import plugin="org.eclipse.ptp.remotetools.environment.generichost"/>
+      <import plugin="org.eclipse.cdt.core"/>
+      <import plugin="org.eclipse.remote.ui"/>
    </requires>
 
    <plugin
diff --git a/releng/org.eclipse.ptp.remote.remotetools-feature/pom.xml b/releng/org.eclipse.ptp.remote.remotetools-feature/pom.xml
index 09f9873..a2b5a39 100644
--- a/releng/org.eclipse.ptp.remote.remotetools-feature/pom.xml
+++ b/releng/org.eclipse.ptp.remote.remotetools-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.remote.remotetools</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.remote.rse-feature/feature.xml b/releng/org.eclipse.ptp.remote.rse-feature/feature.xml
index 020c219..cc0755b 100644
--- a/releng/org.eclipse.ptp.remote.rse-feature/feature.xml
+++ b/releng/org.eclipse.ptp.remote.rse-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.remote.rse"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://eclipse.org/ptp">
@@ -19,23 +19,23 @@
 
    <requires>
       <import plugin="org.eclipse.core.runtime"/>
-      <import plugin="org.eclipse.ptp.remote.core"/>
       <import plugin="org.eclipse.core.filesystem"/>
       <import plugin="org.eclipse.rse.core"/>
       <import plugin="org.eclipse.rse.subsystems.files.core"/>
       <import plugin="org.eclipse.rse.services"/>
       <import plugin="org.eclipse.rse.subsystems.shells.core"/>
-      <import plugin="org.eclipse.rse.ui" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.ptp.remote.rse.core"/>
-      <import plugin="org.eclipse.ptp.remote.core"/>
-      <import plugin="org.eclipse.ptp.remote.ui"/>
-      <import plugin="org.eclipse.rse.core"/>
-      <import plugin="org.eclipse.rse.files.ui"/>
-      <import plugin="org.eclipse.rse.subsystems.files.core"/>
       <import plugin="org.eclipse.dstore.core"/>
       <import plugin="org.eclipse.rse.connectorservice.dstore"/>
       <import plugin="org.eclipse.rse.services.dstore"/>
+      <import plugin="org.eclipse.rse.ui" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.ui"/>
+      <import plugin="org.eclipse.rse.files.ui"/>
+      <import plugin="org.eclipse.remote.core"/>
+      <import plugin="org.eclipse.cdt.core"/>
+      <import plugin="org.eclipse.dstore.extra"/>
+      <import plugin="org.eclipse.rse.connectorservice.local"/>
+      <import plugin="org.eclipse.rse.services.local"/>
+      <import plugin="org.eclipse.remote.ui"/>
    </requires>
 
    <plugin
diff --git a/releng/org.eclipse.ptp.remote.rse-feature/pom.xml b/releng/org.eclipse.ptp.remote.rse-feature/pom.xml
index 6aeab18..b0997d3 100644
--- a/releng/org.eclipse.ptp.remote.rse-feature/pom.xml
+++ b/releng/org.eclipse.ptp.remote.rse-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.remote.rse</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.remote.terminal-feature/feature.xml b/releng/org.eclipse.ptp.remote.terminal-feature/feature.xml
index 58677bc..7683bc2 100644
--- a/releng/org.eclipse.ptp.remote.terminal-feature/feature.xml
+++ b/releng/org.eclipse.ptp.remote.terminal-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.remote.terminal"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/releng/org.eclipse.ptp.remote.terminal-feature/pom.xml b/releng/org.eclipse.ptp.remote.terminal-feature/pom.xml
index 8176fe7..0812b41 100644
--- a/releng/org.eclipse.ptp.remote.terminal-feature/pom.xml
+++ b/releng/org.eclipse.ptp.remote.terminal-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.remote.terminal</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.remotetools-feature/feature.xml b/releng/org.eclipse.ptp.remotetools-feature/feature.xml
index 7e2982d..276884e 100644
--- a/releng/org.eclipse.ptp.remotetools-feature/feature.xml
+++ b/releng/org.eclipse.ptp.remotetools-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.remotetools"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://eclipse.org/ptp">
diff --git a/releng/org.eclipse.ptp.remotetools-feature/pom.xml b/releng/org.eclipse.ptp.remotetools-feature/pom.xml
index 5fd6459..cda2f44 100644
--- a/releng/org.eclipse.ptp.remotetools-feature/pom.xml
+++ b/releng/org.eclipse.ptp.remotetools-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.remotetools</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.repo/category.xml b/releng/org.eclipse.ptp.repo/category.xml
index baeebe8..7fcd44a 100644
--- a/releng/org.eclipse.ptp.repo/category.xml
+++ b/releng/org.eclipse.ptp.repo/category.xml
@@ -33,6 +33,9 @@
    <feature url="features/org.eclipse.ptp.etfw.tau.fortran_0.0.0.jar" id="org.eclipse.ptp.etfw.tau.fortran" version="0.0.0">
       <category name="Parallel Tools Platform"/>
    </feature>
+   <feature url="features/org.eclipse.ptp.etfw.feedback.perfsuite_0.0.0.jar" id="org.eclipse.ptp.etfw.feedback.perfsuite" version="0.0.0">
+      <category name="Parallel Tools Platform"/>
+   </feature>
    <feature url="features/org.eclipse.ptp.sci_0.0.0.jar" id="org.eclipse.ptp.sci" version="0.0.0">
       <category name="Parallel Tools Platform"/>
    </feature>
@@ -63,7 +66,12 @@
    <feature url="features/org.eclipse.ptp.rdt.editor_0.0.0.jar" id="org.eclipse.ptp.rdt.editor" version="0.0.0">
       <category name="Remote Development Tools"/>
    </feature>
+   <feature url="features/org.eclipse.remote_0.0.0.jar" id="org.eclipse.remote" version="0.0.0">
+      <category name="Remote Services"/>
+   </feature>
+
    <category-def name="Parallel Tools Platform" label="Parallel Tools Platform"/>
    <category-def name="Remote Development Tools" label="Remote Development Tools"/>
+   <category-def name="Remote Services" label="Remote Services"/>
    <category-def name="Fortran Development Tools (Photran)" label="Fortran Development Tools (Photran)"/>
 </site>
diff --git a/releng/org.eclipse.ptp.repo/index.html b/releng/org.eclipse.ptp.repo/index.html
index c3ad3c0..cf7c532 100644
--- a/releng/org.eclipse.ptp.repo/index.html
+++ b/releng/org.eclipse.ptp.repo/index.html
@@ -1,12 +1,12 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <html>
 <head>
-  <title>PTP Kepler</title>
+  <title>PTP Luna</title>
 </head>
 <body>
-<h2>PTP Kepler PRE-RELEASE VERSION</h2>
+<h2>PTP Luna PRE-RELEASE VERSION</h2>
 
-<p>This build is built and tested against Eclipse 4.3 (Kepler).</p>
+<p>This build is built and tested against Eclipse 4.4 (Luna).</p>
 
 <h3>PTP Master Archive</h3>
 
@@ -22,7 +22,7 @@
 <tr>
 	<td>PTP Master Archive</td>
 	<td> 
-		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/kepler/nightly/ptp-master-@unqualifiedVersion@.@buildQualifier@.zip">ptp-master-@unqualifiedVersion@.@buildQualifier@.zip</a>
+		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/luna/nightly/ptp-master-@unqualifiedVersion@.@buildQualifier@.zip">ptp-master-@unqualifiedVersion@.@buildQualifier@.zip</a>
 	</td>
 	<td>
 		This archive contains all the features/plug-ins for PTP and Photran, and is a copy of the PTP update site.
@@ -44,7 +44,7 @@
 <tr>
 	<td>PTP Debug Server</td>
 	<td> 
-		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/kepler/nightly/ptp-sdm-@unqualifiedVersion@.zip"
+		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/luna/nightly/ptp-sdm-@unqualifiedVersion@.zip"
 			class="external text"
 			rel="nofollow">ptp-sdm-@unqualifiedVersion@.zip</a>
 	</td>
@@ -56,7 +56,7 @@
 <tr>
 	<td>Scalable Communications Infrastructure (SCI)</td>
 	<td> 
-		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/kepler/nightly/ptp-sci-@unqualifiedVersion@.tar.gz"
+		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/luna/nightly/ptp-sci-@unqualifiedVersion@.tar.gz"
 			class="external text"
 			rel="nofollow">ptp-sci-@unqualifiedVersion@.tar.gz</a>
 	</td>
@@ -68,7 +68,7 @@
 <tr>
 	<td>RDT Server (AIX)</td>
 	<td> 
-		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/kepler/nightly/rdt-server-aix-@unqualifiedVersion@.tar"
+		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/luna/nightly/rdt-server-aix-@unqualifiedVersion@.tar"
 			class="external text"
 			rel="nofollow">rdt-server-aix-@unqualifiedVersion@.tar</a>
 	</td>
@@ -79,7 +79,7 @@
 <tr>
 	<td>RDT Server (Linux Generic)</td>
 	<td> 
-		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/kepler/nightly/rdt-server-linux-@unqualifiedVersion@.tar"
+		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/luna/nightly/rdt-server-linux-@unqualifiedVersion@.tar"
 			class="external text"
 			rel="nofollow">rdt-server-linux-@unqualifiedVersion@.tar</a>
 	</td>
@@ -95,7 +95,7 @@
 <tr>
 	<td>RDT Server (Linux x86)</td>
 	<td> 
-		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/kepler/nightly/rdt-server-linux.x86-@unqualifiedVersion@.tar"
+		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/luna/nightly/rdt-server-linux.x86-@unqualifiedVersion@.tar"
 			class="external text"
 			rel="nofollow">rdt-server-linux.x86-@unqualifiedVersion@.tar</a>
 	</td>
@@ -103,7 +103,7 @@
 <tr>
 	<td>RDT Server (Mac OS X)</td>
 	<td> 
-		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/kepler/nightly/rdt-server-macosx-@unqualifiedVersion@.tar"
+		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/luna/nightly/rdt-server-macosx-@unqualifiedVersion@.tar"
 			class="external text"
 			rel="nofollow">rdt-server-macosx-@unqualifiedVersion@.tar</a>
 	</td>
@@ -111,7 +111,7 @@
 <tr>
 	<td>RDT Server (Unix)</td>
 	<td> 
-		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/kepler/nightly/rdt-server-unix-@unqualifiedVersion@.tar"
+		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/luna/nightly/rdt-server-unix-@unqualifiedVersion@.tar"
 			class="external text"
 			rel="nofollow">rdt-server-unix-@unqualifiedVersion@.tar</a>
 	</td>
@@ -119,7 +119,7 @@
 <tr>
 	<td>RDT Server (Windows)</td>
 	<td> 
-		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/kepler/nightly/rdt-server-windows-@unqualifiedVersion@.zip"
+		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/luna/nightly/rdt-server-windows-@unqualifiedVersion@.zip"
 			class="external text"
 			rel="nofollow">rdt-server-windows-@unqualifiedVersion@.zip</a>
 	</td>
@@ -142,7 +142,7 @@
 <tr>
 	<td>Mac OS X</td>
 	<td> 
-		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/kepler/nightly/ptp-macosx-cocoa-x86_64-@unqualifiedVersion@.tar.gz"
+		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/luna/nightly/ptp-macosx-cocoa-x86_64-@unqualifiedVersion@.tar.gz"
 			class="external text"
 			rel="nofollow">ptp-macosx-cocoa-x86_64-@unqualifiedVersion@.tar.gz</a>
 	</td>
@@ -153,7 +153,7 @@
 <tr>
 	<td>Linux x86</td>
 	<td> 
-		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/kepler/nightly/ptp-linux-gtk-x86-@unqualifiedVersion@.tar.gz"
+		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/luna/nightly/ptp-linux-gtk-x86-@unqualifiedVersion@.tar.gz"
 			class="external text"
 			rel="nofollow">ptp-linux-gtk-x86-@unqualifiedVersion@.tar.gz</a>
 	</td>
@@ -161,7 +161,7 @@
 <tr>
 	<td>Linux x86_64</td>
 	<td> 
-		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/kepler/nightly/ptp-linux-gtk-x86_64-@unqualifiedVersion@.tar.gz"
+		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/luna/nightly/ptp-linux-gtk-x86_64-@unqualifiedVersion@.tar.gz"
 			class="external text"
 			rel="nofollow">ptp-linux-gtk-x86_64-@unqualifiedVersion@.tar.gz</a>
 	</td>
@@ -169,7 +169,7 @@
 <tr>
 	<td>Windows x86</td>
 	<td> 
-		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/kepler/nightly/ptp-win32-x86-@unqualifiedVersion@.zip"
+		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/luna/nightly/ptp-win32-x86-@unqualifiedVersion@.zip"
 			class="external text"
 			rel="nofollow">ptp-win32-x86-@unqualifiedVersion@.zip</a>
 	</td>
@@ -177,7 +177,7 @@
 <tr>
 	<td>Windows x86_64</td>
 	<td> 
-		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/kepler/nightly/ptp-win32-x86_64-@unqualifiedVersion@.zip"
+		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/luna/nightly/ptp-win32-x86_64-@unqualifiedVersion@.zip"
 			class="external text"
 			rel="nofollow">ptp-win32-x86_64-@unqualifiedVersion@.zip</a>
 	</td>
@@ -198,7 +198,7 @@
 <tr>
 	<td>Mac OS X</td>
 	<td> 
-		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/kepler/nightly/sysmon-macosx-cocoa-x86_64-@unqualifiedVersion@.tar.gz"
+		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/luna/nightly/sysmon-macosx-cocoa-x86_64-@unqualifiedVersion@.tar.gz"
 			class="external text"
 			rel="nofollow">sysmon-macosx-cocoa-x86_64-@unqualifiedVersion@.tar.gz</a>
 	</td>
@@ -210,7 +210,7 @@
 <tr>
 	<td>Linux x86</td>
 	<td> 
-		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/kepler/nightly/sysmon-linux-gtk-x86-@unqualifiedVersion@.tar.gz"
+		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/luna/nightly/sysmon-linux-gtk-x86-@unqualifiedVersion@.tar.gz"
 			class="external text"
 			rel="nofollow">sysmon-linux-gtk-x86-@unqualifiedVersion@.tar.gz</a>
 	</td>
@@ -218,7 +218,7 @@
 <tr>
 	<td>Linux x86_64</td>
 	<td> 
-		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/kepler/nightly/sysmon-linux-gtk-x86_64-@unqualifiedVersion@.tar.gz"
+		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/luna/nightly/sysmon-linux-gtk-x86_64-@unqualifiedVersion@.tar.gz"
 			class="external text"
 			rel="nofollow">sysmon-linux-gtk-x86_64-@unqualifiedVersion@.tar.gz</a>
 	</td>
@@ -226,7 +226,7 @@
 <tr>
 	<td>Windows x86</td>
 	<td> 
-		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/kepler/nightly/sysmon-win32-x86-@unqualifiedVersion@.zip"
+		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/luna/nightly/sysmon-win32-x86-@unqualifiedVersion@.zip"
 			class="external text"
 			rel="nofollow">sysmon-win32-x86-@unqualifiedVersion@.zip</a>
 	</td>
@@ -234,7 +234,7 @@
 <tr>
 	<td>Windows x86_64</td>
 	<td> 
-		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/kepler/nightly/sysmon-win32-x86_64-@unqualifiedVersion@.zip"
+		<a href="http://www.eclipse.org/downloads/download.php?file=/tools/ptp/builds/luna/nightly/sysmon-win32-x86_64-@unqualifiedVersion@.zip"
 			class="external text"
 			rel="nofollow">sysmon-win32-x86_64-@unqualifiedVersion@.zip</a>
 	</td>
diff --git a/releng/org.eclipse.ptp.repo/pom.xml b/releng/org.eclipse.ptp.repo/pom.xml
index 5203e20..d718984 100644
--- a/releng/org.eclipse.ptp.repo/pom.xml
+++ b/releng/org.eclipse.ptp.repo/pom.xml
@@ -7,12 +7,12 @@
 	<parent>
 		<groupId>org.eclipse.ptp</groupId>
 		<artifactId>ptp-parent</artifactId>
-		<version>7.0.5-SNAPSHOT</version>
+		<version>8.0.0-SNAPSHOT</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
 	<artifactId>org.eclipse.ptp.repo</artifactId>
-	<version>7.0.5-SNAPSHOT</version>
+	<version>8.0.0-SNAPSHOT</version>
 	<packaging>eclipse-repository</packaging>
 	<profiles>
 		<profile>
diff --git a/releng/org.eclipse.ptp.rm.ibm.ll-feature/feature.xml b/releng/org.eclipse.ptp.rm.ibm.ll-feature/feature.xml
index df2ad0e..46f3a4d 100644
--- a/releng/org.eclipse.ptp.rm.ibm.ll-feature/feature.xml
+++ b/releng/org.eclipse.ptp.rm.ibm.ll-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.rm.ibm.ll"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://eclipse.org/ptp">
diff --git a/releng/org.eclipse.ptp.rm.ibm.ll-feature/pom.xml b/releng/org.eclipse.ptp.rm.ibm.ll-feature/pom.xml
index bc6e11d..4026788 100644
--- a/releng/org.eclipse.ptp.rm.ibm.ll-feature/pom.xml
+++ b/releng/org.eclipse.ptp.rm.ibm.ll-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.rm.ibm.ll</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.rm.ibm.pe-feature/feature.xml b/releng/org.eclipse.ptp.rm.ibm.pe-feature/feature.xml
index 5144099..506ed1e 100644
--- a/releng/org.eclipse.ptp.rm.ibm.pe-feature/feature.xml
+++ b/releng/org.eclipse.ptp.rm.ibm.pe-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.rm.ibm.pe"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://eclipse.org/ptp">
diff --git a/releng/org.eclipse.ptp.rm.ibm.pe-feature/pom.xml b/releng/org.eclipse.ptp.rm.ibm.pe-feature/pom.xml
index 7769572..9af4284 100644
--- a/releng/org.eclipse.ptp.rm.ibm.pe-feature/pom.xml
+++ b/releng/org.eclipse.ptp.rm.ibm.pe-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.rm.ibm.pe</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.rm.ibm.platform.lsf-feature/feature.xml b/releng/org.eclipse.ptp.rm.ibm.platform.lsf-feature/feature.xml
index a0ceae1..ca118e0 100644
--- a/releng/org.eclipse.ptp.rm.ibm.platform.lsf-feature/feature.xml
+++ b/releng/org.eclipse.ptp.rm.ibm.platform.lsf-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.rm.ibm.platform.lsf"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://eclipse.org/ptp">
diff --git a/releng/org.eclipse.ptp.rm.ibm.platform.lsf-feature/pom.xml b/releng/org.eclipse.ptp.rm.ibm.platform.lsf-feature/pom.xml
index fcc2142..8fc0b80 100644
--- a/releng/org.eclipse.ptp.rm.ibm.platform.lsf-feature/pom.xml
+++ b/releng/org.eclipse.ptp.rm.ibm.platform.lsf-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.rm.ibm.platform.lsf</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.rm.jaxb.contrib-feature/feature.xml b/releng/org.eclipse.ptp.rm.jaxb.contrib-feature/feature.xml
index 72f4ef5..6cc2574 100644
--- a/releng/org.eclipse.ptp.rm.jaxb.contrib-feature/feature.xml
+++ b/releng/org.eclipse.ptp.rm.jaxb.contrib-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.rm.jaxb.contrib"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://eclipse.org/ptp">
diff --git a/releng/org.eclipse.ptp.rm.jaxb.contrib-feature/pom.xml b/releng/org.eclipse.ptp.rm.jaxb.contrib-feature/pom.xml
index eb29be0..814da71 100644
--- a/releng/org.eclipse.ptp.rm.jaxb.contrib-feature/pom.xml
+++ b/releng/org.eclipse.ptp.rm.jaxb.contrib-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.rm.jaxb.contrib</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.rm.slurm-feature/feature.xml b/releng/org.eclipse.ptp.rm.slurm-feature/feature.xml
index cf2c5d9..c258fff 100644
--- a/releng/org.eclipse.ptp.rm.slurm-feature/feature.xml
+++ b/releng/org.eclipse.ptp.rm.slurm-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.rm.slurm"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://eclipse.org/ptp">
diff --git a/releng/org.eclipse.ptp.rm.slurm-feature/pom.xml b/releng/org.eclipse.ptp.rm.slurm-feature/pom.xml
index 36454b5..e9d2b3a 100644
--- a/releng/org.eclipse.ptp.rm.slurm-feature/pom.xml
+++ b/releng/org.eclipse.ptp.rm.slurm-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.rm.slurm</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.sci-feature/feature.xml b/releng/org.eclipse.ptp.sci-feature/feature.xml
index 2cf933b..208851b 100644
--- a/releng/org.eclipse.ptp.sci-feature/feature.xml
+++ b/releng/org.eclipse.ptp.sci-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.sci"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://eclipse.org/ptp">
diff --git a/releng/org.eclipse.ptp.sci-feature/pom.xml b/releng/org.eclipse.ptp.sci-feature/pom.xml
index 96b57ca..33ed650 100644
--- a/releng/org.eclipse.ptp.sci-feature/pom.xml
+++ b/releng/org.eclipse.ptp.sci-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.sci</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.sdk-feature/feature.xml b/releng/org.eclipse.ptp.sdk-feature/feature.xml
index 4aa343a..059f43a 100644
--- a/releng/org.eclipse.ptp.sdk-feature/feature.xml
+++ b/releng/org.eclipse.ptp.sdk-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.sdk"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/releng/org.eclipse.ptp.sdk-feature/pom.xml b/releng/org.eclipse.ptp.sdk-feature/pom.xml
index 09220dd..a27a40a 100644
--- a/releng/org.eclipse.ptp.sdk-feature/pom.xml
+++ b/releng/org.eclipse.ptp.sdk-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.sdk</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.sdm-feature/feature.xml b/releng/org.eclipse.ptp.sdm-feature/feature.xml
index 0fa7469..3c7457f 100644
--- a/releng/org.eclipse.ptp.sdm-feature/feature.xml
+++ b/releng/org.eclipse.ptp.sdm-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.debug.sdm"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://eclipse.org/ptp">
diff --git a/releng/org.eclipse.ptp.sdm-feature/pom.xml b/releng/org.eclipse.ptp.sdm-feature/pom.xml
index f56f393..e93228a 100644
--- a/releng/org.eclipse.ptp.sdm-feature/pom.xml
+++ b/releng/org.eclipse.ptp.sdm-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.debug.sdm</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp.services-feature/feature.xml b/releng/org.eclipse.ptp.services-feature/feature.xml
index db4dcb9..2fdfb13 100644
--- a/releng/org.eclipse.ptp.services-feature/feature.xml
+++ b/releng/org.eclipse.ptp.services-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ptp.services"
       label="%featureName"
-      version="7.0.5.qualifier"
+      version="8.0.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.example.com/description">
diff --git a/releng/org.eclipse.ptp.services-feature/pom.xml b/releng/org.eclipse.ptp.services-feature/pom.xml
index ff8bab7..d4632b3 100644
--- a/releng/org.eclipse.ptp.services-feature/pom.xml
+++ b/releng/org.eclipse.ptp.services-feature/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.services</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   <groupId>org.eclipse.ptp.features</groupId>
 </project>
diff --git a/releng/org.eclipse.ptp/META-INF/MANIFEST.MF b/releng/org.eclipse.ptp/META-INF/MANIFEST.MF
index 9b2c937..1b1d57c 100644
--- a/releng/org.eclipse.ptp/META-INF/MANIFEST.MF
+++ b/releng/org.eclipse.ptp/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.ptp;singleton:=true
-Bundle-Version: 7.0.5.qualifier
+Bundle-Version: 8.0.0.qualifier
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/releng/org.eclipse.ptp/plugin.xml b/releng/org.eclipse.ptp/plugin.xml
index dcceb86..e600187 100644
--- a/releng/org.eclipse.ptp/plugin.xml
+++ b/releng/org.eclipse.ptp/plugin.xml
@@ -22,7 +22,7 @@
          </property>
          <property
                name="startupProgressRect"
-               value="0,280,455,15">
+               value="0,280,455,10">
          </property>
          <property
                name="startupMessageRect"
diff --git a/releng/org.eclipse.ptp/pom.xml b/releng/org.eclipse.ptp/pom.xml
index e240979..5c96f52 100644
--- a/releng/org.eclipse.ptp/pom.xml
+++ b/releng/org.eclipse.ptp/pom.xml
@@ -6,11 +6,11 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/rms/org.eclipse.ptp.rm.ibm.ll.doc.user/pom.xml b/rms/org.eclipse.ptp.rm.ibm.ll.doc.user/pom.xml
index 05b46a1..8f4d076 100644
--- a/rms/org.eclipse.ptp.rm.ibm.ll.doc.user/pom.xml
+++ b/rms/org.eclipse.ptp.rm.ibm.ll.doc.user/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rms/org.eclipse.ptp.rm.ibm.ll.ui/pom.xml b/rms/org.eclipse.ptp.rm.ibm.ll.ui/pom.xml
index d7ca3b7..a2543d4 100644
--- a/rms/org.eclipse.ptp.rm.ibm.ll.ui/pom.xml
+++ b/rms/org.eclipse.ptp.rm.ibm.ll.ui/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rms/org.eclipse.ptp.rm.ibm.pe.doc.user/pom.xml b/rms/org.eclipse.ptp.rm.ibm.pe.doc.user/pom.xml
index 7e6c8cc..d69c0c2 100644
--- a/rms/org.eclipse.ptp.rm.ibm.pe.doc.user/pom.xml
+++ b/rms/org.eclipse.ptp.rm.ibm.pe.doc.user/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rms/org.eclipse.ptp.rm.ibm.pe.ui/pom.xml b/rms/org.eclipse.ptp.rm.ibm.pe.ui/pom.xml
index e549065..10b3926 100644
--- a/rms/org.eclipse.ptp.rm.ibm.pe.ui/pom.xml
+++ b/rms/org.eclipse.ptp.rm.ibm.pe.ui/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rms/org.eclipse.ptp.rm.ibm.platform.lsf.doc.user/pom.xml b/rms/org.eclipse.ptp.rm.ibm.platform.lsf.doc.user/pom.xml
index bbd0ec0..576d427 100644
--- a/rms/org.eclipse.ptp.rm.ibm.platform.lsf.doc.user/pom.xml
+++ b/rms/org.eclipse.ptp.rm.ibm.platform.lsf.doc.user/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/META-INF/MANIFEST.MF b/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/META-INF/MANIFEST.MF
index 9826ade..d025a49 100644
--- a/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/META-INF/MANIFEST.MF
+++ b/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/META-INF/MANIFEST.MF
@@ -9,7 +9,7 @@
  org.eclipse.core.runtime,
  org.eclipse.ptp.rm.jaxb.control.ui,
  org.eclipse.ptp.rm.jaxb.core,
- org.eclipse.ptp.remote.core,
+ org.eclipse.remote.core,
  org.eclipse.debug.core,
  org.eclipse.debug.ui;bundle-version="3.9.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/data/com.ibm.platform.lsf_interactive.xml b/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/data/com.ibm.platform.lsf_interactive.xml
index ed6435d..ace80b6 100644
--- a/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/data/com.ibm.platform.lsf_interactive.xml
+++ b/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/data/com.ibm.platform.lsf_interactive.xml
@@ -1933,4 +1933,4 @@
 	</control-data>

 	<monitor-data schedulerType="LSF">

 	</monitor-data>

-</resource-manager-builder>

+</resource-manager-builder>
diff --git a/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/pom.xml b/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/pom.xml
index e197403..739b7e0 100644
--- a/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/pom.xml
+++ b/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/pom.xml
@@ -6,7 +6,7 @@
   <parent>

     <groupId>org.eclipse.ptp</groupId>

     <artifactId>ptp-parent</artifactId>

-    <version>7.0.5-SNAPSHOT</version>

+    <version>8.0.0-SNAPSHOT</version>

     <relativePath>../../pom.xml</relativePath>

   </parent>

 

diff --git a/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/src/org/eclipse/ptp/rm/ibm/lsf/ui/LSFCommand.java b/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/src/org/eclipse/ptp/rm/ibm/lsf/ui/LSFCommand.java
index d4226b7..b878e83 100644
--- a/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/src/org/eclipse/ptp/rm/ibm/lsf/ui/LSFCommand.java
+++ b/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/src/org/eclipse/ptp/rm/ibm/lsf/ui/LSFCommand.java
@@ -14,179 +14,175 @@
 import org.eclipse.core.runtime.IStatus;

 import org.eclipse.core.runtime.Status;

 import org.eclipse.jface.operation.IRunnableWithProgress;

-import org.eclipse.ptp.remote.core.IRemoteConnection;

-import org.eclipse.ptp.remote.core.IRemoteProcess;

-import org.eclipse.ptp.remote.core.IRemoteProcessBuilder;

-import org.eclipse.ptp.remote.core.IRemoteServices;

 import org.eclipse.ptp.rm.ibm.lsf.ui.widgets.Messages;

+import org.eclipse.remote.core.IRemoteConnection;

+import org.eclipse.remote.core.IRemoteProcess;

+import org.eclipse.remote.core.IRemoteProcessBuilder;

 

 /**

- * This class implements invocation of LSF commands as a job running on a non-UI thread with the

- * ability for the user to cancel the job.

+ * This class implements invocation of LSF commands as a job running on a non-UI

+ * thread with the ability for the user to cancel the job.

  */

 public class LSFCommand implements IRunnableWithProgress {

 

-    private String command[];

-    private String commandDescription;

-    private IRemoteConnection remoteConnection;

-    protected Vector<String[]> commandResponse;

-    protected String columnLabels[];

-    public static final int OK = 0;

-    public static final int COMMAND_ERROR = 3;

-    public static final int CANCELED = 2;

-    public static final int NO_DATA = 3;

-    protected IRemoteProcess process;

-    protected IStatus runStatus;

+	private final String command[];

+	private final String commandDescription;

+	private final IRemoteConnection remoteConnection;

+	protected Vector<String[]> commandResponse;

+	protected String columnLabels[];

+	public static final int OK = 0;

+	public static final int COMMAND_ERROR = 3;

+	public static final int CANCELED = 2;

+	public static final int NO_DATA = 3;

+	protected IRemoteProcess process;

+	protected IStatus runStatus;

 

-    /**

-     * Constructor for creating a job to run a LSF command

-     * 

-     * @param name

-     *            - Name of the job

-     * @param connection

-     *            The remote connection where the job will be run

-     * @param cmd

-     *            Array containing command name and command parameters

-     */

-    public LSFCommand(String name, IRemoteConnection connection, String cmd[]) {

-        commandDescription = name;

-        remoteConnection = connection;

-        command = cmd;

-        commandResponse = new Vector<String[]>();

-    }

+	/**

+	 * Constructor for creating a job to run a LSF command

+	 * 

+	 * @param name

+	 *            - Name of the job

+	 * @param connection

+	 *            The remote connection where the job will be run

+	 * @param cmd

+	 *            Array containing command name and command parameters

+	 */

+	public LSFCommand(String name, IRemoteConnection connection, String cmd[]) {

+		commandDescription = name;

+		remoteConnection = connection;

+		command = cmd;

+		commandResponse = new Vector<String[]>();

+	}

 

-    /**

-     * Run the LSF command specified when this object was created.

-     * 

-     * @param monitor

-     *            - Progress monitor used to monitor and control job execution

-     */

-    @Override

-    public void run(IProgressMonitor monitor) {

-        monitor.beginTask(commandDescription, IProgressMonitor.UNKNOWN);

-        runStatus = runCommand(monitor);

-        if (runStatus.isOK() && (process.exitValue() == 0)) {

-            runStatus = getCommandOutput(monitor);

-        }

-        monitor.done();

-    }

+	/**

+	 * Run the LSF command specified when this object was created.

+	 * 

+	 * @param monitor

+	 *            - Progress monitor used to monitor and control job execution

+	 */

+	@Override

+	public void run(IProgressMonitor monitor) {

+		monitor.beginTask(commandDescription, IProgressMonitor.UNKNOWN);

+		runStatus = runCommand(monitor);

+		if (runStatus.isOK() && (process.exitValue() == 0)) {

+			runStatus = getCommandOutput(monitor);

+		}

+		monitor.done();

+	}

 

-    protected IStatus runCommand(IProgressMonitor monitor) {

-        IRemoteServices remoteServices;

-        IRemoteProcessBuilder processBuilder;

+	protected IStatus runCommand(IProgressMonitor monitor) {

+		IRemoteProcessBuilder processBuilder;

 

-        remoteServices = remoteConnection.getRemoteServices();

-        processBuilder = remoteServices.getProcessBuilder(remoteConnection, command);

-        process = null;

-        try {

-            process = processBuilder.start();

-            try {

-                for (;;) {

-                    if (process.isCompleted()) {

-                        break;

-                    }

-                    if (monitor.isCanceled()) {

-                        process.destroy();

-                        return new Status(IStatus.CANCEL, Activator.PLUGIN_ID, CANCELED, Messages.CommandCancelMessage, null);

-                    }

-                    Thread.sleep(1000);

-                }

-            } catch (InterruptedException e) {

-                // Do nothing

-            }

-        } catch (IOException e) {

-            return new Status(IStatus.ERROR, Activator.PLUGIN_ID, COMMAND_ERROR, Messages.LSFCommandFailed, e);

-        }

-        return new Status(IStatus.OK, Activator.PLUGIN_ID, OK, Messages.OkMessage, null);

-    }

+		processBuilder = remoteConnection.getProcessBuilder(command);

+		process = null;

+		try {

+			process = processBuilder.start();

+			try {

+				for (;;) {

+					if (process.isCompleted()) {

+						break;

+					}

+					if (monitor.isCanceled()) {

+						process.destroy();

+						return new Status(IStatus.CANCEL, Activator.PLUGIN_ID, CANCELED, Messages.CommandCancelMessage, null);

+					}

+					Thread.sleep(1000);

+				}

+			} catch (InterruptedException e) {

+				// Do nothing

+			}

+		} catch (IOException e) {

+			return new Status(IStatus.ERROR, Activator.PLUGIN_ID, COMMAND_ERROR, Messages.LSFCommandFailed, e);

+		}

+		return new Status(IStatus.OK, Activator.PLUGIN_ID, OK, Messages.OkMessage, null);

+	}

 

-    protected IStatus getCommandOutput(IProgressMonitor monitor) {

-        BufferedReader reader;

-        String columnData[];

-        String data;

-        boolean headerLine;

+	protected IStatus getCommandOutput(IProgressMonitor monitor) {

+		BufferedReader reader;

+		String columnData[];

+		String data;

+		boolean headerLine;

 

-        /*

-         * Read stderr and check for "No application profiles found."

-         * as the first line of output. Subsequent lines are ignored.

-         */

-        try {

-            reader = new BufferedReader(new InputStreamReader(

-                    process.getErrorStream()));

-            data = reader.readLine();

-            headerLine = true;

-            while (data != null) {

-                if (headerLine) {

-                    if (data.equals("No application profiles found.")) { //$NON-NLS-1$

-                        reader.close();

-                        return new Status(IStatus.INFO, Activator.PLUGIN_ID, NO_DATA, Messages.NoProfileMessage, null);

-                    }

-                    headerLine = false;

-                }

-                data = reader.readLine();

-                if (monitor.isCanceled()) {

-                    reader.close();

-                    return new Status(IStatus.CANCEL, Activator.PLUGIN_ID, CANCELED, Messages.CommandCancelMessage, null);

-                }

-            }

-            reader.close();

-            /*

-             * Read stdout and tokenize each line of data into an array of

-             * blank-delimited strings. The first line of output is the

-             * column headings. Subsequent lines are reservation data.

-             */

-            reader = new BufferedReader(new InputStreamReader(

-                    process.getInputStream()));

-            data = reader.readLine();

-            headerLine = true;

-            commandResponse.clear();

-            while (data != null) {

-                if (headerLine) {

-                    if (data.equals("No reservation found")) { //$NON-NLS-1$

-                        reader.close();

-                        return new Status(IStatus.INFO, Activator.PLUGIN_ID, NO_DATA, Messages.NoReservationMessage, null);

-                    } else {

-                        columnLabels = data.split(" +"); //$NON-NLS-1$

-                        headerLine = false;

-                    }

-                } else {

-                    data = data.replaceAll(" +/ +", "/"); //$NON-NLS-1$ //$NON-NLS-2$

-                    columnData = data.split(" +"); //$NON-NLS-1$

-                    commandResponse.add(columnData);

-                }

-                data = reader.readLine();

-                if (monitor.isCanceled()) {

-                    reader.close();

-                    return new Status(IStatus.CANCEL, Activator.PLUGIN_ID, CANCELED, Messages.CommandCancelMessage, null);

-                }

-            }

-            reader.close();

-        } catch (IOException e) {

-            return new Status(IStatus.ERROR, Activator.PLUGIN_ID, COMMAND_ERROR, "Error reading command output", e);

-        }

-        return new Status(IStatus.OK, Activator.PLUGIN_ID, OK, Messages.OkMessage, null);

-    }

+		/*

+		 * Read stderr and check for "No application profiles found." as the

+		 * first line of output. Subsequent lines are ignored.

+		 */

+		try {

+			reader = new BufferedReader(new InputStreamReader(process.getErrorStream()));

+			data = reader.readLine();

+			headerLine = true;

+			while (data != null) {

+				if (headerLine) {

+					if (data.equals("No application profiles found.")) { //$NON-NLS-1$

+						reader.close();

+						return new Status(IStatus.INFO, Activator.PLUGIN_ID, NO_DATA, Messages.NoProfileMessage, null);

+					}

+					headerLine = false;

+				}

+				data = reader.readLine();

+				if (monitor.isCanceled()) {

+					reader.close();

+					return new Status(IStatus.CANCEL, Activator.PLUGIN_ID, CANCELED, Messages.CommandCancelMessage, null);

+				}

+			}

+			reader.close();

+			/*

+			 * Read stdout and tokenize each line of data into an array of

+			 * blank-delimited strings. The first line of output is the column

+			 * headings. Subsequent lines are reservation data.

+			 */

+			reader = new BufferedReader(new InputStreamReader(process.getInputStream()));

+			data = reader.readLine();

+			headerLine = true;

+			commandResponse.clear();

+			while (data != null) {

+				if (headerLine) {

+					if (data.equals("No reservation found")) { //$NON-NLS-1$

+						reader.close();

+						return new Status(IStatus.INFO, Activator.PLUGIN_ID, NO_DATA, Messages.NoReservationMessage, null);

+					} else {

+						columnLabels = data.split(" +"); //$NON-NLS-1$

+						headerLine = false;

+					}

+				} else {

+					data = data.replaceAll(" +/ +", "/"); //$NON-NLS-1$ //$NON-NLS-2$

+					columnData = data.split(" +"); //$NON-NLS-1$

+					commandResponse.add(columnData);

+				}

+				data = reader.readLine();

+				if (monitor.isCanceled()) {

+					reader.close();

+					return new Status(IStatus.CANCEL, Activator.PLUGIN_ID, CANCELED, Messages.CommandCancelMessage, null);

+				}

+			}

+			reader.close();

+		} catch (IOException e) {

+			return new Status(IStatus.ERROR, Activator.PLUGIN_ID, COMMAND_ERROR, "Error reading command output", e);

+		}

+		return new Status(IStatus.OK, Activator.PLUGIN_ID, OK, Messages.OkMessage, null);

+	}

 

-    /**

-     * Get the command response

-     * 

-     * @return Command response

-     */

-    public Vector<String[]> getCommandResponse() {

-        return commandResponse;

-    }

+	/**

+	 * Get the command response

+	 * 

+	 * @return Command response

+	 */

+	public Vector<String[]> getCommandResponse() {

+		return commandResponse;

+	}

 

-    /**

-     * Get the column headings. Column headings are the first line of the command response data

-     * where each column has a blank-delimited column heading

-     * 

-     * @return Column heading data

-     */

-    public String[] getColumnLabels() {

-        return columnLabels;

-    }

+	/**

+	 * Get the column headings. Column headings are the first line of the

+	 * command response data where each column has a blank-delimited column

+	 * heading

+	 * 

+	 * @return Column heading data

+	 */

+	public String[] getColumnLabels() {

+		return columnLabels;

+	}

 

-    public IStatus getRunStatus() {

-        return runStatus;

-    }

+	public IStatus getRunStatus() {

+		return runStatus;

+	}

 }

diff --git a/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/src/org/eclipse/ptp/rm/ibm/lsf/ui/LSFQueuesCommand.java b/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/src/org/eclipse/ptp/rm/ibm/lsf/ui/LSFQueuesCommand.java
index e034b6b..06ec96f 100644
--- a/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/src/org/eclipse/ptp/rm/ibm/lsf/ui/LSFQueuesCommand.java
+++ b/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/src/org/eclipse/ptp/rm/ibm/lsf/ui/LSFQueuesCommand.java
@@ -8,128 +8,119 @@
 import java.io.BufferedReader;

 import java.io.IOException;

 import java.io.InputStreamReader;

-import java.util.Vector;

 

 import org.eclipse.core.runtime.IProgressMonitor;

 import org.eclipse.core.runtime.IStatus;

 import org.eclipse.core.runtime.Status;

-import org.eclipse.jface.operation.IRunnableWithProgress;

-import org.eclipse.ptp.remote.core.IRemoteConnection;

-import org.eclipse.ptp.remote.core.IRemoteProcess;

-import org.eclipse.ptp.remote.core.IRemoteProcessBuilder;

-import org.eclipse.ptp.remote.core.IRemoteServices;

 import org.eclipse.ptp.rm.ibm.lsf.ui.widgets.Messages;

+import org.eclipse.remote.core.IRemoteConnection;

 

 /**

- * This class implements invocation of LSF commands as a job running on a non-UI thread with the

- * ability for the user to cancel the job.

+ * This class implements invocation of LSF commands as a job running on a non-UI

+ * thread with the ability for the user to cancel the job.

  */

 public class LSFQueuesCommand extends LSFCommand {

 

-    private boolean isInteractiveSession;

+	private final boolean isInteractiveSession;

 

-    /**

-     * Constructor for creating a job to run a LSF command

-     * 

-     * @param name

-     *            - Name of the job

-     * @param connection

-     *            The remote connection where the job will be run

-     * @param cmd

-     *            Array containing command name and command parameters

-     */

-    public LSFQueuesCommand(String name, IRemoteConnection connection, String cmd[], boolean isInteractive) {

-        super(name, connection, cmd);

-        isInteractiveSession = isInteractive;

-    }

+	/**

+	 * Constructor for creating a job to run a LSF command

+	 * 

+	 * @param name

+	 *            - Name of the job

+	 * @param connection

+	 *            The remote connection where the job will be run

+	 * @param cmd

+	 *            Array containing command name and command parameters

+	 */

+	public LSFQueuesCommand(String name, IRemoteConnection connection, String cmd[], boolean isInteractive) {

+		super(name, connection, cmd);

+		isInteractiveSession = isInteractive;

+	}

 

-    protected IStatus getCommandOutput(IProgressMonitor monitor) {

-        BufferedReader reader;

-        String columnData[];

-        String data;

-        String queueData;

-        String queueName;

-        boolean headerProcessed;

-        boolean headerNext;

-        boolean queueDataNext;

-        boolean batchQueueAllowed;

-        boolean interactiveQueueAllowed;

-        try {

-            /*

-             * Read stdout and tokenize each line of data to build an array of

-             * queue data. Output for each queue consists of several lines of text

-             * where this method extracts the queue name, queue statistics and

-             * scheduling restrictions from the text to build an entry for each queue.

-             * Queue data is also filtered to include queues that can be used by this

-             * target system configuration, for example excluding batch only queues when

-             * the target system configuration is an interactive one

-             */

-            reader = new BufferedReader(new InputStreamReader(

-                    process.getInputStream()));

-            commandResponse.clear();

-            headerProcessed = false;

-            headerNext = false;

-            queueDataNext = false;

-            batchQueueAllowed = true;

-            interactiveQueueAllowed = true;

-            queueName = "";

-            queueData = null;

-            data = reader.readLine();

-            while (data != null) {

-                if (data.startsWith("QUEUE:")) {

-                    // Queue name is in a line like "QUEUE: normal"

-                    if ((queueData != null)

-                            && ((isInteractiveSession && interactiveQueueAllowed) || ((!isInteractiveSession) && batchQueueAllowed))) {

-                        queueData = queueData.replaceAll(" +/ +", "/"); //$NON-NLS-1$ //$NON-NLS-2$

-                        columnData = queueData.split(" +"); //$NON-NLS-1$

-                        commandResponse.add(columnData);

-                    }

-                    queueName = data.substring(7).trim();

-                    headerNext = false;

-                    queueDataNext = false;

-                    batchQueueAllowed = true;

-                    interactiveQueueAllowed = true;

-                }

-                else if (data.equals("PARAMETERS/STATISTICS")) {

-                    headerNext = true;

-                }

-                else if (headerNext) {

-                    if (!headerProcessed) {

-                        data = "QUEUE_NAME " + data;

-                        columnLabels = data.split(" +");

-                    }

-                    headerNext = false;

-                    headerProcessed = true;

-                    queueDataNext = true;

-                }

-                else if (queueDataNext) {

-                    queueData = queueName + " " + data;

-                    queueDataNext = false;

-                }

-                else if (data.startsWith("SCHEDULING POLICIES:")) {

-                    if (data.contains("NO_INTERACTIVE")) {

-                        interactiveQueueAllowed = false;

-                    }

-                    else if (data.contains("ONLY_INTERACTIVE")) {

-                        batchQueueAllowed = false;

-                    }

-                }

-                data = reader.readLine();

-                if (monitor.isCanceled()) {

-                    reader.close();

-                    return new Status(IStatus.CANCEL, Activator.PLUGIN_ID, CANCELED, Messages.CommandCancelMessage, null);

-                }

-            }

-            if ((queueData != null)

-                    && ((isInteractiveSession && interactiveQueueAllowed) || ((!isInteractiveSession) && batchQueueAllowed))) {

-                queueData = queueData.replaceAll(" +/ +", "/"); //$NON-NLS-1$ //$NON-NLS-2$

-                columnData = queueData.split(" +"); //$NON-NLS-1$

-                commandResponse.add(columnData);

-            }

-            reader.close();

-        } catch (IOException e) {

-            return new Status(IStatus.ERROR, Activator.PLUGIN_ID, COMMAND_ERROR, "Error reading command output", e);

-        }

-        return new Status(IStatus.OK, Activator.PLUGIN_ID, OK, Messages.OkMessage, null);

-    }

+	@Override

+	protected IStatus getCommandOutput(IProgressMonitor monitor) {

+		BufferedReader reader;

+		String columnData[];

+		String data;

+		String queueData;

+		String queueName;

+		boolean headerProcessed;

+		boolean headerNext;

+		boolean queueDataNext;

+		boolean batchQueueAllowed;

+		boolean interactiveQueueAllowed;

+		try {

+			/*

+			 * Read stdout and tokenize each line of data to build an array of

+			 * queue data. Output for each queue consists of several lines of

+			 * text where this method extracts the queue name, queue statistics

+			 * and scheduling restrictions from the text to build an entry for

+			 * each queue. Queue data is also filtered to include queues that

+			 * can be used by this target system configuration, for example

+			 * excluding batch only queues when the target system configuration

+			 * is an interactive one

+			 */

+			reader = new BufferedReader(new InputStreamReader(process.getInputStream()));

+			commandResponse.clear();

+			headerProcessed = false;

+			headerNext = false;

+			queueDataNext = false;

+			batchQueueAllowed = true;

+			interactiveQueueAllowed = true;

+			queueName = "";

+			queueData = null;

+			data = reader.readLine();

+			while (data != null) {

+				if (data.startsWith("QUEUE:")) {

+					// Queue name is in a line like "QUEUE: normal"

+					if ((queueData != null)

+							&& ((isInteractiveSession && interactiveQueueAllowed) || ((!isInteractiveSession) && batchQueueAllowed))) {

+						queueData = queueData.replaceAll(" +/ +", "/"); //$NON-NLS-1$ //$NON-NLS-2$

+						columnData = queueData.split(" +"); //$NON-NLS-1$

+						commandResponse.add(columnData);

+					}

+					queueName = data.substring(7).trim();

+					headerNext = false;

+					queueDataNext = false;

+					batchQueueAllowed = true;

+					interactiveQueueAllowed = true;

+				} else if (data.equals("PARAMETERS/STATISTICS")) {

+					headerNext = true;

+				} else if (headerNext) {

+					if (!headerProcessed) {

+						data = "QUEUE_NAME " + data;

+						columnLabels = data.split(" +");

+					}

+					headerNext = false;

+					headerProcessed = true;

+					queueDataNext = true;

+				} else if (queueDataNext) {

+					queueData = queueName + " " + data;

+					queueDataNext = false;

+				} else if (data.startsWith("SCHEDULING POLICIES:")) {

+					if (data.contains("NO_INTERACTIVE")) {

+						interactiveQueueAllowed = false;

+					} else if (data.contains("ONLY_INTERACTIVE")) {

+						batchQueueAllowed = false;

+					}

+				}

+				data = reader.readLine();

+				if (monitor.isCanceled()) {

+					reader.close();

+					return new Status(IStatus.CANCEL, Activator.PLUGIN_ID, CANCELED, Messages.CommandCancelMessage, null);

+				}

+			}

+			if ((queueData != null)

+					&& ((isInteractiveSession && interactiveQueueAllowed) || ((!isInteractiveSession) && batchQueueAllowed))) {

+				queueData = queueData.replaceAll(" +/ +", "/"); //$NON-NLS-1$ //$NON-NLS-2$

+				columnData = queueData.split(" +"); //$NON-NLS-1$

+				commandResponse.add(columnData);

+			}

+			reader.close();

+		} catch (IOException e) {

+			return new Status(IStatus.ERROR, Activator.PLUGIN_ID, COMMAND_ERROR, "Error reading command output", e);

+		}

+		return new Status(IStatus.OK, Activator.PLUGIN_ID, OK, Messages.OkMessage, null);

+	}

 }

diff --git a/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/src/org/eclipse/ptp/rm/ibm/lsf/ui/widgets/ApplicationQueryControl.java b/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/src/org/eclipse/ptp/rm/ibm/lsf/ui/widgets/ApplicationQueryControl.java
index 9d07d0b..e51c88f 100644
--- a/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/src/org/eclipse/ptp/rm/ibm/lsf/ui/widgets/ApplicationQueryControl.java
+++ b/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/src/org/eclipse/ptp/rm/ibm/lsf/ui/widgets/ApplicationQueryControl.java
@@ -8,16 +8,16 @@
 import java.lang.reflect.InvocationTargetException;

 

 import org.eclipse.core.runtime.IStatus;

-import org.eclipse.ptp.remote.core.IRemoteConnection;

 import org.eclipse.ptp.rm.ibm.lsf.ui.LSFCommand;

 import org.eclipse.ptp.rm.jaxb.control.ui.IWidgetDescriptor2;

+import org.eclipse.remote.core.IRemoteConnection;

 import org.eclipse.swt.events.SelectionAdapter;

 import org.eclipse.swt.events.SelectionEvent;

 import org.eclipse.swt.widgets.Button;

 import org.eclipse.swt.widgets.Composite;

 

 public class ApplicationQueryControl extends LSFQueryControl {

-	private static final String queryCommand[] = {"bapp", "-w"}; //$NON-NLS-1$ //$NON-NLS-2$

+	private static final String queryCommand[] = { "bapp", "-w" }; //$NON-NLS-1$ //$NON-NLS-2$

 

 	/**

 	 * Create the custom widget for the JAXB ui. In this case the widget is a

@@ -35,8 +35,7 @@
 	}

 

 	@Override

-	protected void configureQueryButton(Button button,

-			final IRemoteConnection connection) {

+	protected void configureQueryButton(Button button, final IRemoteConnection connection) {

 		button.addSelectionListener(new SelectionAdapter() {

 			@Override

 			/**

@@ -64,7 +63,7 @@
 		try {

 			IStatus runStatus;

 			LSFCommand command;

-			

+

 			command = new LSFCommand(Messages.ApplicationCommandDesc, connection, queryCommand);

 			widgetDescriptor.getLaunchConfigurationDialog().run(true, true, command);

 			runStatus = command.getRunStatus();

diff --git a/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/src/org/eclipse/ptp/rm/ibm/lsf/ui/widgets/LSFQueryControl.java b/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/src/org/eclipse/ptp/rm/ibm/lsf/ui/widgets/LSFQueryControl.java
index cf94fd5..37ebe9a 100644
--- a/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/src/org/eclipse/ptp/rm/ibm/lsf/ui/widgets/LSFQueryControl.java
+++ b/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/src/org/eclipse/ptp/rm/ibm/lsf/ui/widgets/LSFQueryControl.java
@@ -11,9 +11,9 @@
 

 import org.eclipse.core.runtime.IStatus;

 import org.eclipse.jface.dialogs.MessageDialog;

-import org.eclipse.ptp.remote.core.IRemoteConnection;

 import org.eclipse.ptp.rm.ibm.lsf.ui.LSFCommand;

 import org.eclipse.ptp.rm.jaxb.control.ui.IWidgetDescriptor2;

+import org.eclipse.remote.core.IRemoteConnection;

 import org.eclipse.swt.SWT;

 import org.eclipse.swt.events.ModifyListener;

 import org.eclipse.swt.layout.FillLayout;

@@ -30,11 +30,13 @@
 	protected String queryTitle;

 	protected final IWidgetDescriptor2 widgetDescriptor;

 

-

 	/**

 	 * Create a custom UI widget (pushbutton) in the JAXB UI

-	 * @param parent - Parent of this widget

-	 * @param wd - Widget attributes

+	 * 

+	 * @param parent

+	 *            - Parent of this widget

+	 * @param wd

+	 *            - Widget attributes

 	 */

 	public LSFQueryControl(Composite parent, final IWidgetDescriptor2 wd) {

 		super(parent, wd.getStyle());

@@ -60,8 +62,7 @@
 		modifyListeners.add(listener);

 	}

 

-	protected abstract void configureQueryButton(Button button,

-			IRemoteConnection connection);

+	protected abstract void configureQueryButton(Button button, IRemoteConnection connection);

 

 	protected abstract void getQueryResponse(IRemoteConnection connection);

 

@@ -119,15 +120,13 @@
 		}

 		return true;

 	}

-	

+

 	protected void processCommandResponse(LSFCommand command, IStatus runStatus) {

 		int selection;

-		

+

 		switch (runStatus.getSeverity()) {

 		case IStatus.OK:

-			dialog = new LSFQueryDialog(getShell(), queryTitle,

-					command.getColumnLabels(), command

-							.getCommandResponse(), true);

+			dialog = new LSFQueryDialog(getShell(), queryTitle, command.getColumnLabels(), command.getCommandResponse(), true);

 			dialog.setSelectedValue(selectedValues);

 			selection = dialog.open();

 			if (selection == 0) {

@@ -136,19 +135,13 @@
 			}

 			break;

 		case IStatus.INFO:

-			MessageDialog.openInformation(getShell(),

-					Messages.InformationalMessage,

-					runStatus.getMessage());

+			MessageDialog.openInformation(getShell(), Messages.InformationalMessage, runStatus.getMessage());

 			break;

 		case IStatus.WARNING:

-			MessageDialog.openInformation(getShell(),

-					Messages.WarningMessageLabel,

-					runStatus.getMessage());

+			MessageDialog.openInformation(getShell(), Messages.WarningMessageLabel, runStatus.getMessage());

 			break;

 		case IStatus.ERROR:

-			MessageDialog.openInformation(getShell(),

-					Messages.ErrorMessage,

-					runStatus.getMessage());

+			MessageDialog.openInformation(getShell(), Messages.ErrorMessage, runStatus.getMessage());

 			break;

 		}

 	}

diff --git a/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/src/org/eclipse/ptp/rm/ibm/lsf/ui/widgets/QueueQueryControl.java b/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/src/org/eclipse/ptp/rm/ibm/lsf/ui/widgets/QueueQueryControl.java
index 243b9f1..048ec0f 100644
--- a/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/src/org/eclipse/ptp/rm/ibm/lsf/ui/widgets/QueueQueryControl.java
+++ b/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/src/org/eclipse/ptp/rm/ibm/lsf/ui/widgets/QueueQueryControl.java
@@ -8,10 +8,10 @@
 import java.lang.reflect.InvocationTargetException;

 

 import org.eclipse.core.runtime.IStatus;

-import org.eclipse.ptp.remote.core.IRemoteConnection;

 import org.eclipse.ptp.rm.ibm.lsf.ui.LSFCommand;

 import org.eclipse.ptp.rm.ibm.lsf.ui.LSFQueuesCommand;

 import org.eclipse.ptp.rm.jaxb.control.ui.IWidgetDescriptor2;

+import org.eclipse.remote.core.IRemoteConnection;

 import org.eclipse.swt.events.SelectionAdapter;

 import org.eclipse.swt.events.SelectionEvent;

 import org.eclipse.swt.widgets.Button;

@@ -19,75 +19,73 @@
 

 public class QueueQueryControl extends LSFQueryControl {

 

-    private static final String queryCommand[] = { "bqueues", "-l" }; //$NON-NLS-1$ //$NON-NLS-2$

+	private static final String queryCommand[] = { "bqueues", "-l" }; //$NON-NLS-1$ //$NON-NLS-2$

 

-    /**

-     * Create the custom widget for the JAXB ui. In this case the widget is a

-     * push button that pops up a dialog with a list of active queues when the

-     * button is pushed.

-     * 

-     * @param parent

-     *            : Container for the widget

-     * @param wd

-     *            : Information about the custom widget

-     */

-    public QueueQueryControl(Composite parent, final IWidgetDescriptor2 wd) {

-        super(parent, wd);

-        queryTitle = Messages.JobQueueTitle;

-    }

+	/**

+	 * Create the custom widget for the JAXB ui. In this case the widget is a

+	 * push button that pops up a dialog with a list of active queues when the

+	 * button is pushed.

+	 * 

+	 * @param parent

+	 *            : Container for the widget

+	 * @param wd

+	 *            : Information about the custom widget

+	 */

+	public QueueQueryControl(Composite parent, final IWidgetDescriptor2 wd) {

+		super(parent, wd);

+		queryTitle = Messages.JobQueueTitle;

+	}

 

-    @Override

-    protected void configureQueryButton(Button button,

-            final IRemoteConnection connection) {

-        button.addSelectionListener(new SelectionAdapter() {

-            @Override

-            /**

-             * Handle button press event. Pop up a dialog listing job queues. If the user

-             * selects a queue and clicks the ok button notify listeners that this

-             * widget has been modified.

-             * 

-             * @param e: The selection event

-             */

-            public void widgetSelected(SelectionEvent e) {

-                getQueryResponse(connection);

-            }

-        });

-    }

+	@Override

+	protected void configureQueryButton(Button button, final IRemoteConnection connection) {

+		button.addSelectionListener(new SelectionAdapter() {

+			@Override

+			/**

+			 * Handle button press event. Pop up a dialog listing job queues. If the user

+			 * selects a queue and clicks the ok button notify listeners that this

+			 * widget has been modified.

+			 * 

+			 * @param e: The selection event

+			 */

+			public void widgetSelected(SelectionEvent e) {

+				getQueryResponse(connection);

+			}

+		});

+	}

 

-    /**

-     * Issue the 'bqueues' command to query the available queues and set up the

-     * column heading and queue data arrays.

-     * 

-     * @param connection

-     *            : Connection to the remote system

-     */

-    @Override

-    protected void getQueryResponse(IRemoteConnection connection) {

-        try {

-            IStatus runStatus;

-            LSFCommand command;

-            boolean isInteractive;

-            String interactiveFlag;

+	/**

+	 * Issue the 'bqueues' command to query the available queues and set up the

+	 * column heading and queue data arrays.

+	 * 

+	 * @param connection

+	 *            : Connection to the remote system

+	 */

+	@Override

+	protected void getQueryResponse(IRemoteConnection connection) {

+		try {

+			IStatus runStatus;

+			LSFCommand command;

+			boolean isInteractive;

+			String interactiveFlag;

 

-            /*

-             * Check if the queue query is being requested by an interactive or batch session

-             * by querying the widget title

-             */

-            interactiveFlag = widgetDescriptor.getTitle();

-            if ((interactiveFlag != null) && (interactiveFlag.equals("Interactive"))) {

-                isInteractive = true;

-            }

-            else {

-                isInteractive = false;

-            }

-            command = new LSFQueuesCommand(Messages.QueueCommandDesc, connection, queryCommand, isInteractive);

-            widgetDescriptor.getLaunchConfigurationDialog().run(true, true, command);

-            runStatus = command.getRunStatus();

-            processCommandResponse(command, runStatus);

-        } catch (InvocationTargetException e) {

-            // Do nothing

-        } catch (InterruptedException e) {

-            // Do nothing

-        }

-    }

+			/*

+			 * Check if the queue query is being requested by an interactive or batch session

+			 * by querying the widget title

+			 */

+			interactiveFlag = widgetDescriptor.getTitle();

+			if ((interactiveFlag != null) && (interactiveFlag.equals("Interactive"))) {

+				isInteractive = true;

+			} else {

+				isInteractive = false;

+			}

+			command = new LSFQueuesCommand(Messages.QueueCommandDesc, connection, queryCommand, isInteractive);

+			widgetDescriptor.getLaunchConfigurationDialog().run(true, true, command);

+			runStatus = command.getRunStatus();

+			processCommandResponse(command, runStatus);

+		} catch (InvocationTargetException e) {

+			// Do nothing

+		} catch (InterruptedException e) {

+			// Do nothing

+		}

+	}

 }

diff --git a/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/src/org/eclipse/ptp/rm/ibm/lsf/ui/widgets/ReservationQueryControl.java b/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/src/org/eclipse/ptp/rm/ibm/lsf/ui/widgets/ReservationQueryControl.java
index 01e8f18..6cbfca0 100644
--- a/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/src/org/eclipse/ptp/rm/ibm/lsf/ui/widgets/ReservationQueryControl.java
+++ b/rms/org.eclipse.ptp.rm.ibm.platform.lsf.ui/src/org/eclipse/ptp/rm/ibm/lsf/ui/widgets/ReservationQueryControl.java
@@ -5,27 +5,19 @@
 

 package org.eclipse.ptp.rm.ibm.lsf.ui.widgets;

 

-import java.io.BufferedReader;

-import java.io.IOException;

-import java.io.InputStreamReader;

 import java.lang.reflect.InvocationTargetException;

 

 import org.eclipse.core.runtime.IStatus;

-import org.eclipse.jface.dialogs.MessageDialog;

-import org.eclipse.ptp.remote.core.IRemoteConnection;

-import org.eclipse.ptp.remote.core.IRemoteProcess;

-import org.eclipse.ptp.remote.core.IRemoteProcessBuilder;

-import org.eclipse.ptp.remote.core.IRemoteServices;

 import org.eclipse.ptp.rm.ibm.lsf.ui.LSFCommand;

-import org.eclipse.ptp.rm.jaxb.control.ui.IWidgetDescriptor;

 import org.eclipse.ptp.rm.jaxb.control.ui.IWidgetDescriptor2;

+import org.eclipse.remote.core.IRemoteConnection;

 import org.eclipse.swt.events.SelectionAdapter;

 import org.eclipse.swt.events.SelectionEvent;

 import org.eclipse.swt.widgets.Button;

 import org.eclipse.swt.widgets.Composite;

 

 public class ReservationQueryControl extends LSFQueryControl {

-	private static final String queryCommand[] = {"brsvs", "-w"}; //$NON-NLS-1$ //$NON-NLS-2$

+	private static final String queryCommand[] = { "brsvs", "-w" }; //$NON-NLS-1$ //$NON-NLS-2$

 

 	/**

 	 * Create the custom widget for the JAXB ui. In this case the widget is a

@@ -43,8 +35,7 @@
 	}

 

 	@Override

-	protected void configureQueryButton(Button button,

-			final IRemoteConnection connection) {

+	protected void configureQueryButton(Button button, final IRemoteConnection connection) {

 		button.addSelectionListener(new SelectionAdapter() {

 			@Override

 			/**

@@ -72,7 +63,7 @@
 		try {

 			IStatus runStatus;

 			LSFCommand command;

-			

+

 			command = new LSFCommand(Messages.ReservationCommandDesc, connection, queryCommand);

 			widgetDescriptor.getLaunchConfigurationDialog().run(true, true, command);

 			runStatus = command.getRunStatus();

diff --git a/rms/org.eclipse.ptp.rm.jaxb.configs/data/gridengine-generic-batch.xml b/rms/org.eclipse.ptp.rm.jaxb.configs/data/gridengine-generic-batch.xml
index ada8f8e..856c8d8 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.configs/data/gridengine-generic-batch.xml
+++ b/rms/org.eclipse.ptp.rm.jaxb.configs/data/gridengine-generic-batch.xml
@@ -129,7 +129,6 @@
 				<error-message>format must be hh:mm:ss</error-message>
 			</validator>
 		</attribute>
-
 		<!-- ========== -->
 		<!-- JOB SCRIPT -->
 		<!-- ========== -->
@@ -199,7 +198,6 @@
 				<arg resolve="false">${COMMAND}</arg>
 			</line>
 		</script>
-		
 		<!-- ================= -->
 		<!-- START-UP COMMANDS -->
 		<!-- ================= -->
@@ -217,7 +215,6 @@
 				</target>
 			</stdout-parser>
 		</start-up-command>
-
 		<!-- ============== -->
 		<!-- JOB SUBMISSION -->
 		<!-- ============== -->
@@ -287,7 +284,6 @@
 				</target>
 			</stderr-parser>
 		</submit-batch>
-
 		<!-- ========== -->
 		<!-- JOB STATUS -->
 		<!-- ========== -->
@@ -386,7 +382,6 @@
 				</target>
 			</stderr-parser>
 		</get-job-status>
-
 		<!-- =============== -->
 		<!-- JOB TERMINATION -->
 		<!-- =============== -->
@@ -394,7 +389,6 @@
 			<arg>${ptp_rm:bindir#value}qdel</arg>
 			<arg>${ptp_rm:@jobId#name}</arg>
 		</terminate-job>
-
 		<!-- ========================= -->
 		<!-- USER INTERFACE/LAUNCH TAB -->
 		<!-- ========================= -->
@@ -642,6 +636,5 @@
 			</import>
 		</launch-tab>
 	</control-data>
-
 	<monitor-data schedulerType="GridEngine" />
 </resource-manager-builder>
\ No newline at end of file
diff --git a/rms/org.eclipse.ptp.rm.jaxb.configs/data/mpich2-generic-interactive.xml b/rms/org.eclipse.ptp.rm.jaxb.configs/data/mpich2-generic-interactive.xml
index d87ffed..abdb4ad 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.configs/data/mpich2-generic-interactive.xml
+++ b/rms/org.eclipse.ptp.rm.jaxb.configs/data/mpich2-generic-interactive.xml
@@ -26,6 +26,7 @@
 			<default></default>
 		</attribute>
 		<attribute name="mpiNumberOfProcesses" min="1" type="integer"/>
+		<attribute name="noLocalOption" type="boolean"/>
 		<attribute name="prefixOption" type="boolean"/>
 		<attribute name="prefix" type="string"/>
 		<attribute name="useHostFile" type="boolean"/>
@@ -66,14 +67,17 @@
 				</target>
 			</stderr-parser>
 		</submit-interactive>
-		<!-- submit-interactive-debug name="submit-interactive-debug" directory="${ptp_rm:executableDirectory#value}" waitForId="true" keepOpen="true">
-			<arg>perl ${ptp_rm:ptpDirectory#value}/rms/MPICH2/start_job.pl</arg>
+		<submit-interactive-debug name="submit-interactive-debug" directory="${ptp_rm:executableDirectory#value}" waitForId="true" keepOpen="true">
+			<arg>perl ${ptp_rm:ptpDirectory#value}/rms/MPICH2/start_debug_job.pl</arg>
 			<arg attribute="useDefaultPath" isUndefinedIfMatches="true">${ptp_rm:bindir#value}/mpiexec</arg>
 			<arg attribute="useDefaultPath" isUndefinedIfMatches="false">mpiexec</arg>
 			<arg>-np ${ptp_rm:mpiNumberOfProcesses#value}</arg>
 			<arg>${ptp_rm:debuggerExecutablePath#value}</arg>
 			<arg>${ptp_rm:debuggerArgs#value}</arg>
+			<environment name="PTP_JOBID" value="@jobId"/>
 			<environment name="PTP_LAUNCH_MODE" value="${ptp_rm:launchMode#value}" />
+			<environment name="PTP_DEBUG_EXEC_PATH" value="${ptp_rm:debuggerExecutablePath#value}"/>
+			<environment name="PTP_DEBUG_EXEC_ARGS" value="${ptp_rm:debuggerArgs#value}"/>
 			<stdout-parser delim="\n">
 				<target ref="@jobId">
 					<match>
@@ -97,7 +101,7 @@
 			</stderr-parser>
 			<pre-launch-cmd name="Cleanup" exec="rm -f routing_file" wait="true"/>
 			<post-launch-cmd name="SDM Master" exec="${ptp_rm:debuggerExecutablePath#value} -master ${ptp_rm:debuggerArgs#value}" wait="false"/>
-		</submit-interactive-debug-->		
+		</submit-interactive-debug>		
 		<launch-tab>
 			<dynamic includeWidgetValuesFrom="Advanced Options">
 				<title>Basic Options</title>
diff --git a/rms/org.eclipse.ptp.rm.jaxb.configs/data/slurm-alps-generic-batch.xml b/rms/org.eclipse.ptp.rm.jaxb.configs/data/slurm-alps-generic-batch.xml
index 7283b04..6c412ba 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.configs/data/slurm-alps-generic-batch.xml
+++ b/rms/org.eclipse.ptp.rm.jaxb.configs/data/slurm-alps-generic-batch.xml
@@ -28,10 +28,9 @@
         </attribute>
         <!-- needed by RM internals for fetch; name is fixed by convention -->
         <attribute name="stderr_remote_path" visible="false">
-            <default>${ptp_rm:workdir#value}/slurm-${ptp_rm:@jobId#default}.out</default>
+            <default>${ptp_rm:workdir#value}/slurm-${ptp_rm:@jobId#default}.err</default>
             <link-value-to>error</link-value-to>
         </attribute>
-
         <attribute name="account" type="string">
             <description>Charge resources used by this job to specified account.</description>
             <tooltip><![CDATA[The account is an arbitrary string. The account name may be changed after
@@ -283,7 +282,6 @@
             <tooltip><![CDATA[The command line arguments for executable will be the command and 
 arguments of the job step.  If executable is "none", then no prolog will be run.
 This parameter overrides the SrunProlog parameter in slurm.conf.]]></tooltip></attribute>
-        
         <script insertEnvironmentAfter="30" deleteAfterSubmit="true">
             <!-- <file-staging-location>${ptp_rm:directory#value}</file-staging-location> -->
             <line>
@@ -372,7 +370,6 @@
                 <arg isUndefinedIfMatches='NTASKS_PER_NODE="--ntasks-per-node="'>NTASKS_PER_NODE="--ntasks-per-node=${ptp_rm:srun.ntasks_per_node#value}"</arg></line>
             <line>
                 <arg isUndefinedIfMatches='PROLOG="--prolog="'>PROLOG="--prolog=${ptp_rm:srun.prolog#value}"</arg></line>
-            
             <line>
                 <arg resolve="false">SRUN_ARGS="${EPILOG} ${LABEL} ${NTASKS} ${NTASKS_PER_NODE} ${PROLOG}"</arg>
             </line>
@@ -411,7 +408,6 @@
                         <expression>^Submitted batch job ([\d]+)</expression>
                         <set field="name">
                             <entry valueGroup="1"></entry></set>
-                        
                         <set field="default">
                             <entry valueGroup="1"></entry></set>
                         <set field="value">
@@ -523,11 +519,6 @@
                             <entry value="SYSTEM_SUSPENDED" />
                         </set>
                         </test>
-                        
-                        
-                        
-                        
-                        
                     </test>
                     <test op="EQ">
                         <value>#value</value>
@@ -601,20 +592,20 @@
                     </match>
                 </target>
             </stderr-parser>
-            
         </get-job-status>
         <terminate-job name="cancel" ignoreExitStatus="true">
             <arg>scancel</arg>
             <arg>${ptp_rm:@jobId#name}</arg>
-        </terminate-job><hold-job name="hold" ignoreExitStatus="true">
-    <arg>scontrol</arg><arg>hold</arg>
-    <arg>${ptp_rm:@jobId#name}</arg></hold-job>
+        </terminate-job>
+        <hold-job name="hold" ignoreExitStatus="true">
+            <arg>scontrol</arg><arg>hold</arg>
+            <arg>${ptp_rm:@jobId#name}</arg>
+        </hold-job>
         <release-job name="release" ignoreExitStatus="true">
             <arg>scontrol</arg>
             <arg>release</arg>
-            <arg>${ptp_rm:@jobId#name}</arg></release-job>
-        
-        
+            <arg>${ptp_rm:@jobId#name}</arg>
+        </release-job>
         <launch-tab>
             <dynamic>
                 <title>Basic Settings</title>
diff --git a/rms/org.eclipse.ptp.rm.jaxb.configs/data/slurm-bgp-batch.xml b/rms/org.eclipse.ptp.rm.jaxb.configs/data/slurm-bgp-batch.xml
index 01db62b..4839289 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.configs/data/slurm-bgp-batch.xml
+++ b/rms/org.eclipse.ptp.rm.jaxb.configs/data/slurm-bgp-batch.xml
@@ -27,10 +27,9 @@
         </attribute>
         <!-- needed by RM internals for fetch; name is fixed by convention -->
         <attribute name="stderr_remote_path" visible="false">
-            <default>${ptp_rm:workdir#value}/slurm-${ptp_rm:@jobId#default}.out</default>
+            <default>${ptp_rm:workdir#value}/slurm-${ptp_rm:@jobId#default}.err</default>
             <link-value-to>error</link-value-to>
         </attribute>
-
         <attribute name="account" type="string">
             <description>Charge resources used by this job to specified account.</description>
             <tooltip><![CDATA[The account is an arbitrary string. The account name may be changed after
@@ -469,7 +468,6 @@
                         <expression>^Submitted batch job ([\d]+)</expression>
                         <set field="name">
                             <entry valueGroup="1"></entry></set>
-                        
                         <set field="default">
                             <entry valueGroup="1"></entry></set>
                         <set field="value">
@@ -581,11 +579,6 @@
                             <entry value="SYSTEM_SUSPENDED" />
                         </set>
                         </test>
-                        
-                        
-                        
-                        
-                        
                     </test>
                     <test op="EQ">
                         <value>#value</value>
@@ -659,20 +652,20 @@
                     </match>
                 </target>
             </stderr-parser>
-            
         </get-job-status>
         <terminate-job name="cancel" ignoreExitStatus="true">
             <arg>scancel</arg>
             <arg>${ptp_rm:@jobId#name}</arg>
-        </terminate-job><hold-job name="hold" ignoreExitStatus="true">
-    <arg>scontrol</arg><arg>hold</arg>
-    <arg>${ptp_rm:@jobId#name}</arg></hold-job>
+        </terminate-job>
+        <hold-job name="hold" ignoreExitStatus="true">
+            <arg>scontrol</arg><arg>hold</arg>
+            <arg>${ptp_rm:@jobId#name}</arg>
+        </hold-job>
         <release-job name="release" ignoreExitStatus="true">
             <arg>scontrol</arg>
             <arg>release</arg>
-            <arg>${ptp_rm:@jobId#name}</arg></release-job>
-        
-        
+            <arg>${ptp_rm:@jobId#name}</arg>
+        </release-job>
         <launch-tab>
             <dynamic>
                 <title>Basic Settings</title>
diff --git a/rms/org.eclipse.ptp.rm.jaxb.configs/data/slurm-bgq-batch.xml b/rms/org.eclipse.ptp.rm.jaxb.configs/data/slurm-bgq-batch.xml
index ddbcf57..a1a3c3f 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.configs/data/slurm-bgq-batch.xml
+++ b/rms/org.eclipse.ptp.rm.jaxb.configs/data/slurm-bgq-batch.xml
@@ -27,10 +27,9 @@
         </attribute>
         <!-- needed by RM internals for fetch; name is fixed by convention -->
         <attribute name="stderr_remote_path" visible="false">
-            <default>${ptp_rm:workdir#value}/slurm-${ptp_rm:@jobId#default}.out</default>
+            <default>${ptp_rm:workdir#value}/slurm-${ptp_rm:@jobId#default}.err</default>
             <link-value-to>error</link-value-to>
         </attribute>
-
         <attribute name="account" type="string">
             <description>Charge resources used by this job to specified account.</description>
             <tooltip><![CDATA[The account is an arbitrary string. The account name may be changed after
@@ -323,7 +322,6 @@
             <description>Options to the runjob command.</description>
             <tooltip><![CDATA[Options to the runjob command.  For use only on IBM BlueGene/Q systems.]]></tooltip>
         </attribute>
-        
         <script insertEnvironmentAfter="31" deleteAfterSubmit="true">
             <file-staging-location>${ptp_rm:directory#value}</file-staging-location>
             <line>
@@ -433,7 +431,6 @@
                 <arg isUndefinedIfMatches='NTASKS_PER_NODE="--ntasks-per-node="'>NTASKS_PER_NODE="--ntasks-per-node=${ptp_rm:srun.ntasks_per_node#value}"</arg></line>
             <line>
                 <arg isUndefinedIfMatches='PROLOG="--prolog="'>PROLOG="--prolog=${ptp_rm:srun.prolog#value}"</arg></line>
-            
             <line>
                 <arg resolve="false">SRUN_ARGS="${EPILOG} ${LABEL} ${NTASKS} ${NTASKS_PER_NODE} ${PROLOG}"</arg>
             </line>
@@ -470,7 +467,6 @@
                         <expression>^Submitted batch job ([\d]+)</expression>
                         <set field="name">
                             <entry valueGroup="1"></entry></set>
-                        
                         <set field="default">
                             <entry valueGroup="1"></entry></set>
                         <set field="value">
@@ -655,19 +651,20 @@
                     </match>
                 </target>
             </stderr-parser>
-            
         </get-job-status>
         <terminate-job name="cancel" ignoreExitStatus="true">
             <arg>scancel</arg>
             <arg>${ptp_rm:@jobId#name}</arg>
-        </terminate-job><hold-job name="hold" ignoreExitStatus="true">
-    <arg>scontrol</arg><arg>hold</arg>
-    <arg>${ptp_rm:@jobId#name}</arg></hold-job>
+        </terminate-job>
+        <hold-job name="hold" ignoreExitStatus="true">
+            <arg>scontrol</arg><arg>hold</arg>
+            <arg>${ptp_rm:@jobId#name}</arg>
+        </hold-job>
         <release-job name="release" ignoreExitStatus="true">
             <arg>scontrol</arg>
             <arg>release</arg>
             <arg>${ptp_rm:@jobId#name}</arg>
-        </release-job>        
+        </release-job>
         <launch-tab>
             <dynamic>
                 <title>Basic Settings</title>
diff --git a/rms/org.eclipse.ptp.rm.jaxb.configs/data/slurm-generic-batch.xml b/rms/org.eclipse.ptp.rm.jaxb.configs/data/slurm-generic-batch.xml
index ca597f7..0bf4e58 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.configs/data/slurm-generic-batch.xml
+++ b/rms/org.eclipse.ptp.rm.jaxb.configs/data/slurm-generic-batch.xml
@@ -27,10 +27,9 @@
         </attribute>
         <!-- needed by RM internals for fetch; name is fixed by convention -->
         <attribute name="stderr_remote_path" visible="false">
-            <default>${ptp_rm:workdir#value}/slurm-${ptp_rm:@jobId#default}.out</default>
+            <default>${ptp_rm:workdir#value}/slurm-${ptp_rm:@jobId#default}.err</default>
             <link-value-to>error</link-value-to>
         </attribute>
-
         <attribute name="account" type="string">
             <description>Charge resources used by this job to specified account.</description>
             <tooltip><![CDATA[The account is an arbitrary string. The account name may be changed after
@@ -282,7 +281,6 @@
             <tooltip><![CDATA[The command line arguments for executable will be the command and 
 arguments of the job step.  If executable is "none", then no prolog will be run.
 This parameter overrides the SrunProlog parameter in slurm.conf.]]></tooltip></attribute>
-        
         <script insertEnvironmentAfter="30" deleteAfterSubmit="true">
             <!-- <file-staging-location>${ptp_rm:directory#value}</file-staging-location> -->
             <line>
@@ -371,7 +369,6 @@
                 <arg isUndefinedIfMatches='NTASKS_PER_NODE="--ntasks-per-node="'>NTASKS_PER_NODE="--ntasks-per-node=${ptp_rm:srun.ntasks_per_node#value}"</arg></line>
             <line>
                 <arg isUndefinedIfMatches='PROLOG="--prolog="'>PROLOG="--prolog=${ptp_rm:srun.prolog#value}"</arg></line>
-            
             <line>
                 <arg resolve="false">SRUN_ARGS="${EPILOG} ${LABEL} ${NTASKS} ${NTASKS_PER_NODE} ${PROLOG}"</arg>
             </line>
@@ -410,7 +407,6 @@
                         <expression>^Submitted batch job ([\d]+)</expression>
                         <set field="name">
                             <entry valueGroup="1"></entry></set>
-                        
                         <set field="default">
                             <entry valueGroup="1"></entry></set>
                         <set field="value">
@@ -522,11 +518,6 @@
                             <entry value="SYSTEM_SUSPENDED" />
                         </set>
                         </test>
-                        
-                        
-                        
-                        
-                        
                     </test>
                     <test op="EQ">
                         <value>#value</value>
@@ -600,20 +591,20 @@
                     </match>
                 </target>
             </stderr-parser>
-            
         </get-job-status>
         <terminate-job name="cancel" ignoreExitStatus="true">
             <arg>scancel</arg>
             <arg>${ptp_rm:@jobId#name}</arg>
-        </terminate-job><hold-job name="hold" ignoreExitStatus="true">
-    <arg>scontrol</arg><arg>hold</arg>
-    <arg>${ptp_rm:@jobId#name}</arg></hold-job>
+        </terminate-job>
+        <hold-job name="hold" ignoreExitStatus="true">
+            <arg>scontrol</arg><arg>hold</arg>
+            <arg>${ptp_rm:@jobId#name}</arg>
+        </hold-job>
         <release-job name="release" ignoreExitStatus="true">
             <arg>scontrol</arg>
             <arg>release</arg>
-            <arg>${ptp_rm:@jobId#name}</arg></release-job>
-        
-        
+            <arg>${ptp_rm:@jobId#name}</arg>
+        </release-job>
         <launch-tab>
             <dynamic>
                 <title>Basic Settings</title>
diff --git a/rms/org.eclipse.ptp.rm.jaxb.configs/plugin.xml b/rms/org.eclipse.ptp.rm.jaxb.configs/plugin.xml
index f4bbd1e..b28cacf 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.configs/plugin.xml
+++ b/rms/org.eclipse.ptp.rm.jaxb.configs/plugin.xml
@@ -63,6 +63,5 @@
             configurationFile="data/ibm-platform-mpi-interactive.xml"
             name="IBM Platform MPI">
       </JAXBResourceManagerConfiguration>
-      
    </extension>
 </plugin>
diff --git a/rms/org.eclipse.ptp.rm.jaxb.configs/pom.xml b/rms/org.eclipse.ptp.rm.jaxb.configs/pom.xml
index 6176d2d..2734bbf 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.configs/pom.xml
+++ b/rms/org.eclipse.ptp.rm.jaxb.configs/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rms/org.eclipse.ptp.rm.jaxb.contrib/data/de.fz-juelich.judge.torque.batch.xml b/rms/org.eclipse.ptp.rm.jaxb.contrib/data/de.fz-juelich.judge.torque.batch.xml
index b3c90bf..8838d50 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.contrib/data/de.fz-juelich.judge.torque.batch.xml
+++ b/rms/org.eclipse.ptp.rm.jaxb.contrib/data/de.fz-juelich.judge.torque.batch.xml
@@ -12,7 +12,7 @@
 <resource-manager-builder 
 	xmlns="http://eclipse.org/ptp/rm" 
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://eclipse.org/ptp/rm http://eclipse.org/ptp/schemas/v1.1/rm.xsd" 
+	xsi:schemaLocation="http://eclipse.org/ptp/rm http://eclipse.org/ptp/schemas/v1.2/rm.xsd" 
 	name="de.fz-juelich.judge.torque.batch">
 	<control-data>
 		<!-- Set the default value of this attribute if MSUB is installed in a non-standard location -->
@@ -936,5 +936,99 @@
 		</launch-tab>
 	</control-data>
 	<monitor-data schedulerType="TORQUE">
+		<rm:layout version="1.0" xmlns="" xmlns:rm="http://eclipse.org/ptp/rm">
+			<tablelayout id="tl_Run"
+				gid="org.eclipse.ptp.rm.lml.ui.ActiveJobsView" active="true"
+				contenthint="jobs">
+				<column cid="1" pos="0" width="0.1" active="true" key="step" />
+				<column cid="2" pos="1" width="0.1" active="true" key="owner" />
+				<column cid="3" pos="2" width="0.1" active="true" key="queue" />
+				<column cid="4" pos="3" width="0.1" active="true" key="wall" />
+				<column cid="5" pos="4" width="0.1" active="true" key="queuedate" />
+				<column cid="6" pos="5" width="0.1" active="true" key="dispatchdate" />
+				<column cid="7" pos="6" width="0.1" active="true" key="totalcores" />
+				<column cid="8" pos="7" width="0.1" active="true" key="status">
+					<pattern>
+						<select rel="=" value="RUNNING" />
+					</pattern>
+				</column>
+				<column cid="9" pos="8" width="1.0" active="false" key="dependency" />
+				<column cid="10" pos="9" width="1.0" active="false" key="detailedstatus" />
+				<column cid="11" pos="10" width="1.0" active="false" key="gpulist" />
+				<column cid="12" pos="11" width="1.0" active="false" key="group" />
+				<column cid="13" pos="12" width="1.0" active="false" key="name" />
+				<column cid="14" pos="13" width="1.0" active="false" key="nodelist" />
+				<column cid="15" pos="14" width="1.0" active="false" key="restart" />
+				<column cid="16" pos="15" width="1.0" active="false" key="spec" />
+				<column cid="17" pos="16" width="1.0" active="false" key="state" />
+				<column cid="18" pos="17" width="1.0" active="false" key="totaltasks" />
+			</tablelayout>
+			<tablelayout id="tl_WAIT"
+				gid="org.eclipse.ptp.rm.lml.ui.InactiveJobsView" active="true"
+				contenthint="jobs">
+				<column cid="1" pos="0" width="0.1" active="true" key="step" />
+				<column cid="2" pos="1" width="0.1" active="true" key="owner" />
+				<column cid="3" pos="2" width="0.1" active="true" key="queue" />
+				<column cid="4" pos="3" width="0.1" active="true" key="wall" />
+				<column cid="5" pos="4" width="0.1" active="true" key="queuedate" />
+				<column cid="6" pos="5" width="0.1" active="true" key="dispatchdate" />
+				<column cid="7" pos="6" width="0.1" active="true" key="totalcores" />
+				<column cid="8" pos="7" width="0.1" active="true" key="status">
+					<pattern>
+						<select rel="!=" value="RUNNING" />
+					</pattern>
+				</column>
+				<column cid="9" pos="8" width="1.0" active="false" key="dependency" />
+				<column cid="10" pos="9" width="1.0" active="false" key="detailedstatus" />
+				<column cid="11" pos="10" width="1.0" active="false" key="group" />
+				<column cid="12" pos="11" width="1.0" active="false" key="name" />
+				<column cid="13" pos="12" width="1.0" active="false" key="nodelist" />
+				<column cid="14" pos="13" width="1.0" active="false" key="restart" />
+				<column cid="15" pos="14" width="1.0" active="false" key="spec" />
+				<column cid="16" pos="15" width="1.0" active="false" key="state" />
+				<column cid="17" pos="16" width="1.0" active="false" key="totaltasks" />
+				<column cid="18" pos="17" width="1.0" active="false" key="vnodelist" />
+			</tablelayout>
+			<nodedisplaylayout id="nodedisplay" gid="nd_1"
+				active="true">
+				<schemehint>
+					<el1 tagname="node" min="1" max="206" mask="judge%03d">
+						<el2 tagname="core" min="0" max="25" mask="-c%02d" />
+					</el1>
+				</schemehint>
+				<el0 rows="10" maxlevel="2" cols="21" vgap="5">
+					<el1 min="1" max="21" background="#fff" rows="7" cols="4">
+						<el2 min="24" max="25" border="2" mouseborder="3" />
+					</el1>
+					<el1 min="22" max="42" background="#aaa" rows="7" cols="4">
+						<el2 min="24" max="25" border="2" mouseborder="3" />
+					</el1>
+					<el1 min="43" max="63" background="#fff" rows="7" cols="4">
+						<el2 min="24" max="25" border="2" mouseborder="3" />
+					</el1>
+					<el1 min="64" max="84" background="#aaa" rows="7" cols="4">
+						<el2 min="24" max="25" border="2" mouseborder="3" />
+					</el1>
+					<el1 min="85" max="105" background="#fff" rows="7" cols="4">
+						<el2 min="24" max="25" border="2" mouseborder="3" />
+					</el1>
+					<el1 min="106" max="126" background="#aaa" rows="7" cols="4">
+						<el2 min="24" max="25" border="2" mouseborder="3" />
+					</el1>
+					<el1 min="127" max="147" background="#fff" rows="7" cols="4">
+						<el2 min="24" max="25" border="2" mouseborder="3" />
+					</el1>
+					<el1 min="148" max="168" background="#aaa" rows="7" cols="4">
+						<el2 min="24" max="25" border="2" mouseborder="3" />
+					</el1>
+					<el1 min="169" max="189" background="#fff" rows="7" cols="4">
+						<el2 min="24" max="25" border="2" mouseborder="3" />
+					</el1>
+					<el1 min="190" max="206" background="#aaa" rows="7" cols="4">
+						<el2 min="24" max="25" border="2" mouseborder="3" />
+					</el1>
+				</el0>
+			</nodedisplaylayout>
+		</rm:layout>
 	</monitor-data>
 </resource-manager-builder>
\ No newline at end of file
diff --git a/rms/org.eclipse.ptp.rm.jaxb.contrib/data/de.fz-juelich.juqueen.ll_bg.xml b/rms/org.eclipse.ptp.rm.jaxb.contrib/data/de.fz-juelich.juqueen.ll_bg.xml
index 9aa3a57..cd57345 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.contrib/data/de.fz-juelich.juqueen.ll_bg.xml
+++ b/rms/org.eclipse.ptp.rm.jaxb.contrib/data/de.fz-juelich.juqueen.ll_bg.xml
@@ -1,26 +1,30 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- ******************************************************************************* -->
-<!-- * Copyright (c) 2012 IBM Corporation and others. All rights reserved. This program -->
-<!-- * and the accompanying materials are made available under the terms of the -->
-<!-- * Eclipse Public License v1.0 which accompanies this distribution, and is -->
+<!-- * Copyright (c) 2012 IBM Corporation and others. All rights reserved. 
+	This program -->
+<!-- * and the accompanying materials are made available under the terms 
+	of the -->
+<!-- * Eclipse Public License v1.0 which accompanies this distribution, and 
+	is -->
 <!-- * available at http://www.eclipse.org/legal/epl-v10.html -->
 <!-- * Contributors: -->
 <!-- * Carsten Karbach - additional parameters for JUQUEEN job submission -->
 <!-- ****************************************************************************** -->
-<resource-manager-builder 
-	xmlns="http://eclipse.org/ptp/rm" 
+<resource-manager-builder xmlns="http://eclipse.org/ptp/rm"
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://eclipse.org/ptp/rm http://eclipse.org/ptp/schemas/v1.1/rm.xsd" 
+	xsi:schemaLocation="http://eclipse.org/ptp/rm http://eclipse.org/ptp/schemas/v1.2/rm.xsd"
 	name="de.fz-juelich.juqueen.ll_bg">
 	<control-data>
-		<!-- Set the default value of this attribute if LL is installed in a non-standard location -->
-		<attribute name="bindir" visible="false"/>
-		<!-- This is a necessary attribute for the functioning of LML; link it to the batch-specific variable name -->
+		<!-- Set the default value of this attribute if LL is installed in a non-standard 
+			location -->
+		<attribute name="bindir" visible="false" />
+		<!-- This is a necessary attribute for the functioning of LML; link it 
+			to the batch-specific variable name -->
 		<attribute name="control.queue.name" visible="false">
 			<link-value-to>LL_JOB_CLASS</link-value-to>
 		</attribute>
 		<!-- We set this to invisible because the values are not really modifiable -->
-		<attribute name="classes" visible="false"/>
+		<attribute name="classes" visible="false" />
 		<!-- Needed by RM internals for fetch; name is fixed by convention -->
 		<attribute name="stdout_remote_path" visible="false">
 			<default>${ptp_rm:directory#value}/${ptp_rm:Job_Name#value}.o${ptp_rm:@jobId#default}</default>
@@ -38,7 +42,7 @@
 		<attribute name="email" type="string">
 			<description>E-mail address for notifications.</description>
 			<validator>
-				<regex expression="^[^@]+@[^@]+$"/>
+				<regex expression="^[^@]+@[^@]+$" />
 				<error-message>format must match the regular expression ^[^@]+@[^@]+$</error-message>
 			</validator>
 		</attribute>
@@ -46,224 +50,279 @@
 			<description>Number of processes per compute node.</description>
 			<choice>,1,2,4,8,16,32,64</choice>
 		</attribute>
-		
+
 		<!-- Attribute definitions for user-specified fields -->
-				
+
 		<attribute name="LL_BG_BLOCK" type="string">
 			<description>Specify node block where job is to be run.</description>
 		</attribute>
-						
+
 		<attribute name="LL_BG_CONNECTIVITY" type="string">
 			<description>Specify type of connectivity for node block.</description>
 		</attribute>
-						
+
 		<attribute name="LL_BG_REQUIREMENTS" type="string">
 			<description>Specify Blue Gene midplane requirements.</description>
 		</attribute>
-						
+
 		<attribute name="LL_BG_SHAPE" type="string">
 			<description>Specify Blue Gene job shape.</description>
 		</attribute>
-			
+
 		<attribute name="LL_BG_SIZE" type="string">
 			<description>Specify Blue Gene job size.</description>
 		</attribute>
-		
+
 		<attribute name="LL_BLOCKING" type="string">
 			<description>Specify blocking factor for assigning tasks to nodes.</description>
 		</attribute>
-						
-		<attribute name="LL_BULKXFER" type="boolean" translateBooleanAs="yes,no">
+
+		<attribute name="LL_BULKXFER" type="boolean"
+			translateBooleanAs="yes,no">
 			<description>Use bulk data transfer for user space jobs.</description>
 		</attribute>
-		
+
 		<attribute name="LL_COMMENT" type="string">
 			<description>Describe characteristics or distinguishing features of job.</description>
 		</attribute>
-		
+
 		<attribute name="LL_ENVIRONMENT" type="string">
 			<description>Specify handling of job's environment variables by LoadLeveler.</description>
 		</attribute>
-				
+
 		<attribute name="LL_HARD_LIMIT" type="string">
 			<description>Specify the hard elaspsed time limit for this job.</description>
 		</attribute>
-					
+
 		<attribute name="LL_JOB_CLASS" type="string">
 			<description>Specify the job class to use.</description>
 		</attribute>
-						
+
 		<attribute name="LL_JOB_NAME" type="string">
 			<description>Specify the name of the job.</description>
 		</attribute>
-				
+
 		<attribute name="LL_JOB_TYPE" type="string">
 			<description>Specify the type of the job.</description>
 			<choice>Serial,Parallel,MPICH,bluegene</choice>
 		</attribute>
-						
+
 		<attribute name="LL_LARGE_PAGE" type="string">
 			<description>Specify if a job requires large page support (AIX).</description>
 			<choice>Y,M,N</choice>
 		</attribute>
-								
+
 		<attribute name="LL_MAX_NODES" type="string">
 			<description>Specify maximum number of nodes.</description>
 		</attribute>
-								
+
 		<attribute name="LL_MIN_NODES" type="string">
 			<description>Specify minimum number of nodes.</description>
 		</attribute>
-								
+
 		<attribute name="LL_NETWORK_LAPI" type="string">
 			<description>Specify network adapters and characteristics for LAPI applications.</description>
 		</attribute>
-										
+
 		<attribute name="LL_NETWORK_MPI" type="string">
 			<description>Specify network adapters and characteristics for MPI applications.</description>
 		</attribute>
-										
+
 		<attribute name="LL_NETWORK_MPI_LAPI" type="string">
 			<description>Specify network adapters and characteristics for MPI/LAPI applications.</description>
 		</attribute>
-						
+
 		<attribute name="LL_REQUIREMENTS" type="string">
 			<description>Specify requirements a node must meet to run a job.</description>
 		</attribute>
-								
+
 		<attribute name="LL_RESOURCES" type="string">
 			<description>Specify quantity of consumable resources used by each task.</description>
 		</attribute>
-												
+
 		<attribute name="LL_SHELL" type="string">
 			<description>Specify the name of a shell to use for this job.</description>
 		</attribute>
-				
+
 		<attribute name="LL_SOFT_LIMIT" type="string">
 			<description>Specify the soft elaspsed time limit for this job.</description>
 		</attribute>
-												
+
 		<attribute name="LL_STDERR" type="string">
 			<description>Specify a file to use for stderr output.</description>
 			<default>$(host).$(jobid).$(stepid).err</default>
 		</attribute>
-												
+
 		<attribute name="LL_STDIN" type="string">
 			<description>Specify a file to use for stdin input.</description>
 		</attribute>
-												
+
 		<attribute name="LL_STDOUT" type="string">
 			<description>Specify a file to use for stdout output.</description>
 			<default>$(host).$(jobid).$(stepid).out</default>
-		</attribute>	
-												
+		</attribute>
+
 		<attribute name="LL_TASK_GEOMETRY" type="string">
 			<description>Specify grouping of parallel tasks on nodes.</description>
 		</attribute>
-												
+
 		<attribute name="LL_TASKS_PER_NODE" type="string">
 			<description>Specify number of tasks per node.</description>
-		</attribute>	
-												
+		</attribute>
+
 		<attribute name="LL_TOTAL_TASKS" type="string">
 			<description>Specify total number of tasks.</description>
 		</attribute>
-			
+
 		<attribute name="LL_WALL_CLOCK_LIMIT" type="string">
 			<description>Specify the elapsed time the job can run (hardlimit,softlimit).</description>
-		</attribute>			
-		
+		</attribute>
+
 		<script insertEnvironmentAfter="0">
 			<file-staging-location>${ptp_rm:directory#value}</file-staging-location>
 			<line>
 				<arg>#!/bin/bash</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ bg_block ="># @ bg_block = ${ptp_rm:LL_BG_BLOCK#value}</arg>
+				<arg isUndefinedIfMatches="# @ bg_block ="># @ bg_block =
+					${ptp_rm:LL_BG_BLOCK#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ bg_connectivity ="># @ bg_connectivity = ${ptp_rm:LL_BG_CONNECTIVITY#value}</arg>
+				<arg isUndefinedIfMatches="# @ bg_connectivity ="># @ bg_connectivity =
+					${ptp_rm:LL_BG_CONNECTIVITY#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ bg_requirements ="># @ bg_requirements = ${ptp_rm:LL_BG_REQUIREMENTS#value}</arg>
+				<arg isUndefinedIfMatches="# @ bg_requirements ="># @ bg_requirements =
+					${ptp_rm:LL_BG_REQUIREMENTS#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ bg_shape ="># @ bg_shape = ${ptp_rm:LL_BG_SHAPE#value}</arg>
+				<arg isUndefinedIfMatches="# @ bg_shape ="># @ bg_shape =
+					${ptp_rm:LL_BG_SHAPE#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ bg_size ="># @ bg_size = ${ptp_rm:LL_BG_SIZE#value}</arg>
+				<arg isUndefinedIfMatches="# @ bg_size ="># @ bg_size =
+					${ptp_rm:LL_BG_SIZE#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ blocking ="># @ blocking = ${ptp_rm:LL_BLOCKING#value}</arg>
+				<arg isUndefinedIfMatches="# @ blocking ="># @ blocking =
+					${ptp_rm:LL_BLOCKING#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ bulkxfer ="># @ bulkxfer = ${ptp_rm:LL_BULKXFER#value}</arg>
+				<arg isUndefinedIfMatches="# @ bulkxfer ="># @ bulkxfer =
+					${ptp_rm:LL_BULKXFER#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ class ="># @ class = ${ptp_rm:LL_JOB_CLASS#value}</arg>
+				<arg isUndefinedIfMatches="# @ class ="># @ class =
+					${ptp_rm:LL_JOB_CLASS#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ comment ="># @ comment = ${ptp_rm:LL_COMMENT#value}</arg>
+				<arg isUndefinedIfMatches="# @ comment ="># @ comment =
+					${ptp_rm:LL_COMMENT#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ environment ="># @ environment = ${ptp_rm:LL_ENVIRONMENT#value}</arg>
+				<arg isUndefinedIfMatches="# @ environment ="># @ environment =
+					${ptp_rm:LL_ENVIRONMENT#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ error ="># @ error = ${ptp_rm:LL_STDERR#value}</arg>
+				<arg isUndefinedIfMatches="# @ error ="># @ error = ${ptp_rm:LL_STDERR#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ input ="># @ input = ${ptp_rm:LL_STDIN#value}</arg>
+				<arg isUndefinedIfMatches="# @ input ="># @ input = ${ptp_rm:LL_STDIN#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ job_cpu_limit = ,"># @ job_cpu_limit = ${ptp_rm:LL_HARD_LIMIT#value},${ptp_rm:LL_SOFT_LIMIT#value}</arg>
+				<arg isUndefinedIfMatches="# @ job_cpu_limit = ,"># @ job_cpu_limit =
+					${ptp_rm:LL_HARD_LIMIT#value},${ptp_rm:LL_SOFT_LIMIT#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ job_name ="># @ job_name = ${ptp_rm:LL_JOB_NAME#value}</arg>
+				<arg isUndefinedIfMatches="# @ job_name ="># @ job_name =
+					${ptp_rm:LL_JOB_NAME#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ job_type ="># @ job_type = ${ptp_rm:LL_JOB_TYPE#value}</arg>
+				<arg isUndefinedIfMatches="# @ job_type ="># @ job_type =
+					${ptp_rm:LL_JOB_TYPE#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ large_page ="># @ large_page = ${ptp_rm:LL_LARGE_PAGE#value}</arg>
+				<arg isUndefinedIfMatches="# @ large_page ="># @ large_page =
+					${ptp_rm:LL_LARGE_PAGE#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ notify_user ="># @ notify_user = ${ptp_rm:email#value}</arg>
+				<arg isUndefinedIfMatches="# @ notify_user ="># @ notify_user =
+					${ptp_rm:email#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ node = ,"># @ node = ${ptp_rm:LL_MIN_NODES#value},${ptp_rm:LL_MAX_NODES#value}</arg>
+				<arg isUndefinedIfMatches="# @ node = ,"># @ node =
+					${ptp_rm:LL_MIN_NODES#value},${ptp_rm:LL_MAX_NODES#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ network.LAPI ="># @ network.LAPI = ${ptp_rm:LL_NETWORK_LAPI#value}</arg>
+				<arg isUndefinedIfMatches="# @ network.LAPI ="># @ network.LAPI =
+					${ptp_rm:LL_NETWORK_LAPI#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ network.MPI ="># @ network.MPI = ${ptp_rm:LL_NETWORK_MPI#value}</arg>
+				<arg isUndefinedIfMatches="# @ network.MPI ="># @ network.MPI =
+					${ptp_rm:LL_NETWORK_MPI#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ network.MPI_LAPI ="># @ network.MPI_LAPI = ${ptp_rm:LL_NETWORK_MPI_LAPI#value}</arg>
+				<arg isUndefinedIfMatches="# @ network.MPI_LAPI ="># @ network.MPI_LAPI =
+					${ptp_rm:LL_NETWORK_MPI_LAPI#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ output ="># @ output = ${ptp_rm:LL_STDOUT#value}</arg>
+				<arg isUndefinedIfMatches="# @ output ="># @ output = ${ptp_rm:LL_STDOUT#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ requirements ="># @ requirements = ${ptp_rm:LL_REQUIREMENTS#value}</arg>
+				<arg isUndefinedIfMatches="# @ requirements ="># @ requirements =
+					${ptp_rm:LL_REQUIREMENTS#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ resources ="># @ resources = ${ptp_rm:LL_RESOURCES#value}</arg>
+				<arg isUndefinedIfMatches="# @ resources ="># @ resources =
+					${ptp_rm:LL_RESOURCES#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ shell ="># @ shell = ${ptp_rm:LL_SHELL#value}</arg>
+				<arg isUndefinedIfMatches="# @ shell ="># @ shell = ${ptp_rm:LL_SHELL#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ task_geometry ="># @ task_geometry = ${ptp_rm:LL_TASK_GEOMETRY#value}</arg>
+				<arg isUndefinedIfMatches="# @ task_geometry ="># @ task_geometry =
+					${ptp_rm:LL_TASK_GEOMETRY#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ tasks_per_node ="># @ tasks_per_node = ${ptp_rm:LL_TASKS_PER_NODE#value}</arg>
+				<arg isUndefinedIfMatches="# @ tasks_per_node ="># @ tasks_per_node =
+					${ptp_rm:LL_TASKS_PER_NODE#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ total_tasks ="># @ total_tasks = ${ptp_rm:LL_TOTAL_TASKS#value}</arg>
+				<arg isUndefinedIfMatches="# @ total_tasks ="># @ total_tasks =
+					${ptp_rm:LL_TOTAL_TASKS#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="# @ wall_clock_limit ="># @ wall_clock_limit = ${ptp_rm:LL_WALL_CLOCK_LIMIT#value}</arg>
+				<arg isUndefinedIfMatches="# @ wall_clock_limit ="># @ wall_clock_limit =
+					${ptp_rm:LL_WALL_CLOCK_LIMIT#value}
+				</arg>
 			</line>
 			<line>
 				<arg># @ queue</arg>
@@ -273,7 +332,9 @@
 			</line>
 			<line>
 				<arg>${ptp_rm:mpiCommand#value} </arg>
-				<arg isUndefinedIfMatches="--ranks-per-node">--ranks-per-node ${ptp_rm:ranksPerNode#value}</arg>
+				<arg isUndefinedIfMatches="--ranks-per-node">--ranks-per-node
+					${ptp_rm:ranksPerNode#value}
+				</arg>
 				<arg>:</arg>
 				<arg>${ptp_rm:executablePath#value} </arg>
 				<arg isUndefinedIfMatches="">${ptp_rm:progArgs#value}</arg>
@@ -287,39 +348,42 @@
 					<match>
 						<expression>^=============== Class ([\w\d]+).*$</expression>
 						<add field="value">
-							<entry valueGroup="1"/>
+							<entry valueGroup="1" />
 						</add>
 					</match>
 				</target>
 			</stdout-parser>
 		</start-up-command>
-		<submit-batch name="submit-batch" directory="${ptp_rm:directory#value}" waitForId="true">
+		<submit-batch name="submit-batch" directory="${ptp_rm:directory#value}"
+			waitForId="true">
 			<arg>${ptp_rm:bindir#value}llsubmit</arg>
 			<arg>${ptp_rm:managed_file_for_script#value}</arg>
 			<stdout-parser delim="\n" all="true" save="1">
 				<target ref="@jobId">
 					<match>
-						<expression>^llsubmit: The job "(.*\.\d)" has been submitted.*$</expression>
+						<expression>^llsubmit: The job "(.*\.\d)" has been submitted.*$
+						</expression>
 						<append field="name">
-							<entry valueGroup="1"/>
+							<entry valueGroup="1" />
 						</append>
 						<set field="value">
-							<entry value="SUBMITTED"/>
+							<entry value="SUBMITTED" />
 						</set>
 					</match>
 					<match>
-						<expression>^llsubmit: The job "(.*\.\d\d+)" has been submitted.*$</expression>
+						<expression>^llsubmit: The job "(.*\.\d\d+)" has been submitted.*$
+						</expression>
 						<append field="name">
-							<entry valueGroup="1"/>
+							<entry valueGroup="1" />
 						</append>
 						<append field="name" separator=".">
-							<entry value="0"/>
+							<entry value="0" />
 						</append>
 						<set field="default">
-							<entry valueGroup="1"/>
+							<entry valueGroup="1" />
 						</set>
 						<set field="value">
-							<entry value="SUBMITTED"/>
+							<entry value="SUBMITTED" />
 						</set>
 					</match>
 				</target>
@@ -328,7 +392,7 @@
 				<target ref="@jobId">
 					<match>
 						<expression>.*2512-051.*</expression>
-						<throw message="Job Submit Failed"/>
+						<throw message="Job Submit Failed" />
 					</match>
 				</target>
 			</stderr-parser>
@@ -343,57 +407,54 @@
 						<expression>^Id.*$</expression>
 					</match>
 					<match>
-						<!--  Match and discard heading line -->
+						<!-- Match and discard heading line -->
 						<expression>^------.*$</expression>
 					</match>
 					<match>
-						<!--  Match job status line like 'z25c2s1.59.0             user     5/29 08:24 R  50  No_Class     z25c2s1' -->
-						<!--  Note that node name (last token) will be blank if job is in holding state so don't include that in pattern -->
-						<expression>^\S+ +\S+ +\S+ +\S+ (\S)  \d+ +(\S+) +(\S)+.*$</expression>
+						<!-- Match job status line like 'z25c2s1.59.0 user 5/29 08:24 R 50 
+							No_Class z25c2s1' -->
+						<!-- Note that node name (last token) will be blank if job is in holding 
+							state so don't include that in pattern -->
+						<expression>^\S+ +\S+ +\S+ +\S+ (\S) \d+ +(\S+) +(\S)+.*$
+						</expression>
 						<set field="value">
-							<entry valueGroup="1"/>
+							<entry valueGroup="1" />
 						</set>
 					</match>
 					<match>
 						<!-- Match completed case -->
-						<expression>llq: There is currently no job status to report\.</expression>
+						<expression>llq: There is currently no job status to report\.
+						</expression>
 						<set field="value">
-							<entry value="COMPLETED"/>
+							<entry value="COMPLETED" />
 						</set>
 					</match>
 					<test op="EQ">
 						<value>#value</value>
 						<value>R</value>
 						<set field="value">
-							<entry value="RUNNING"/>
+							<entry value="RUNNING" />
 						</set>
 					</test>
 					<test op="EQ">
 						<value>#value</value>
 						<value>H</value>
 						<set field="value">
-							<entry value="HELD"/>
+							<entry value="HELD" />
 						</set>
 					</test>
 					<test op="EQ">
 						<value>#value</value>
 						<value>I</value>
 						<set field="value">
-							<entry value="SUBMITTED"/>
+							<entry value="SUBMITTED" />
 						</set>
 					</test>
 				</target>
 			</stdout-parser>
-			<!-- stderr-parser delim="\n">
-				<target ref="@jobId">
-					<match>
-						<expression>.+</expression>
-						<set field="value">
-							<entry value="COMPLETED"/>
-						</set>
-					</match>
-				</target>
-			</stderr-parser-->
+			<!-- stderr-parser delim="\n"> <target ref="@jobId"> <match> <expression>.+</expression> 
+				<set field="value"> <entry value="COMPLETED"/> </set> </match> </target> 
+				</stderr-parser -->
 		</get-job-status>
 		<terminate-job name="cancel" ignoreExitStatus="true">
 			<arg>${ptp_rm:bindir#value}llcancel</arg>
@@ -403,814 +464,936 @@
 			<dynamic includeWidgetValuesFrom="Scheduling,Runtime,Nodes/Network,Limits">
 				<title>General</title>
 				<layout>
-					<grid-layout/>
+					<grid-layout />
 				</layout>
-				
+
 				<composite group="true">
 					<layout>
-						<grid-layout numColumns="4" makeColumnsEqualWidth="false" horizontalSpacing="10" verticalSpacing="15"/>
+						<grid-layout numColumns="4" makeColumnsEqualWidth="false"
+							horizontalSpacing="10" verticalSpacing="15" />
 					</layout>
-					
+
 					<!-- HEADER -->
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Name</fixed-text>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" horizontalSpan="2" minWidth="200" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								horizontalSpan="2" minWidth="200" grabExcessHorizontal="true" />
 						</layout-data>
 						<fixed-text>Value</fixed-text>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Description</fixed-text>
 					</widget>
-					
-               <!-- Job Comment -->
+
+					<!-- Job Comment -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Comment:</fixed-text>
 					</widget>
 					<widget type="text" style="SWT.BORDER" attribute="LL_COMMENT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="true" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_COMMENT#description}</fixed-text>
 					</widget>
-										
-               <!-- Job Name -->
+
+					<!-- Job Name -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Job name:</fixed-text>
 					</widget>
 					<widget type="text" style="SWT.BORDER" attribute="LL_JOB_NAME">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="true" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_JOB_NAME#description}</fixed-text>
 					</widget>
-															
-               <!-- Job Type -->
+
+					<!-- Job Type -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Job type:</fixed-text>
 					</widget>
-					<widget type="combo" style="SWT.BORDER" readOnly="true" attribute="LL_JOB_TYPE">
+					<widget type="combo" style="SWT.BORDER" readOnly="true"
+						attribute="LL_JOB_TYPE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="true" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_JOB_TYPE#description}</fixed-text>
 					</widget>
-				
-				<!-- Choose ranks per node -->
+
+					<!-- Choose ranks per node -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Ranks per node: </fixed-text>
 					</widget>
-					<widget type="combo" style="SWT.BORDER" readOnly="false" attribute="ranksPerNode">
+					<widget type="combo" style="SWT.BORDER" readOnly="false"
+						attribute="ranksPerNode">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="false" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:ranksPerNode#description}</fixed-text>
 					</widget>
-					
-				<!-- MPI Command -->
+
+					<!-- MPI Command -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>MPI Command: </fixed-text>
 					</widget>
-					<widget type="combo" style="SWT.BORDER" readOnly="false" attribute="mpiCommand">
+					<widget type="combo" style="SWT.BORDER" readOnly="false"
+						attribute="mpiCommand">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="false" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:mpiCommand#description}</fixed-text>
 					</widget>
-					
-				<!-- Job notification email address -->
+
+					<!-- Job notification email address -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>E-mail:</fixed-text>
 					</widget>
 					<widget type="text" style="SWT.BORDER" attribute="email">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="true" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:email#description}</fixed-text>
 					</widget>
-					
+
 				</composite>
 			</dynamic>
-			
+
 			<dynamic includeWidgetValuesFrom="General,Runtime,Nodes/Network,Limits">
 				<title>Scheduling</title>
 				<layout>
-					<grid-layout/>
+					<grid-layout />
 				</layout>
-				
+
 				<composite group="true">
 					<layout>
-						<grid-layout numColumns="4" makeColumnsEqualWidth="false" horizontalSpacing="10" verticalSpacing="15"/>
+						<grid-layout numColumns="4" makeColumnsEqualWidth="false"
+							horizontalSpacing="10" verticalSpacing="15" />
 					</layout>
-					
+
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Name</fixed-text>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" horizontalSpan="2" minWidth="200" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" horizontalSpan="2" minWidth="200"
+								grabExcessHorizontal="true" />
 						</layout-data>
 						<fixed-text>Value</fixed-text>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Description</fixed-text>
 					</widget>
-																				
-               <!-- Job Class -->
+
+					<!-- Job Class -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Job class:</fixed-text>
 					</widget>
-					<widget type="combo" style="SWT.BORDER" readOnly="true" attribute="LL_JOB_CLASS">
+					<widget type="combo" style="SWT.BORDER" readOnly="true"
+						attribute="LL_JOB_CLASS">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="true" />
 						</layout-data>
 						<items-from>classes</items-from>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_JOB_CLASS#description}</fixed-text>
 					</widget>
-																				
-               <!-- Large page support -->
+
+					<!-- Large page support -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Large page:</fixed-text>
 						<control-state>
-							<enable-if attribute="os.name" value="AIX"/>
+							<enable-if attribute="os.name" value="AIX" />
 						</control-state>
 					</widget>
-					<widget type="combo" style="SWT.BORDER" readOnly="true" attribute="LL_LARGE_PAGE">
+					<widget type="combo" style="SWT.BORDER" readOnly="true"
+						attribute="LL_LARGE_PAGE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="true" />
 						</layout-data>
 						<control-state>
-							<enable-if attribute="os.name" value="AIX"/>
+							<enable-if attribute="os.name" value="AIX" />
 						</control-state>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_LARGE_PAGE#description}</fixed-text>
 						<control-state>
-							<enable-if attribute="os.name" value="AIX"/>
+							<enable-if attribute="os.name" value="AIX" />
 						</control-state>
 					</widget>
-															
-               <!-- Job requirements -->
+
+					<!-- Job requirements -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Requirements:</fixed-text>
 					</widget>
 					<widget type="text" style="SWT.BORDER" attribute="LL_REQUIREMENTS">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="true" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_REQUIREMENTS#description}</fixed-text>
 					</widget>
-													
-               <!-- Job resources -->
+
+					<!-- Job resources -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Resources:</fixed-text>
 					</widget>
 					<widget type="text" style="SWT.BORDER" attribute="LL_RESOURCES">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="true" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_RESOURCES#description}</fixed-text>
 					</widget>
-											
-               <!-- BG Midplane requirements -->
+
+					<!-- BG Midplane requirements -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Midplane requirements:</fixed-text>
 					</widget>
 					<widget type="text" style="SWT.BORDER" attribute="LL_BG_REQUIREMENTS">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="true" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_BG_REQUIREMENTS#description}</fixed-text>
 					</widget>
 				</composite>
 			</dynamic>
-			
+
 			<dynamic includeWidgetValuesFrom="General,Scheduling,Nodes/Network,Limits">
 				<title>Runtime</title>
 				<layout>
-					<grid-layout/>
+					<grid-layout />
 				</layout>
-				
+
 				<composite group="true">
 					<layout>
-						<grid-layout numColumns="4" makeColumnsEqualWidth="false" horizontalSpacing="10" verticalSpacing="15"/>
+						<grid-layout numColumns="4" makeColumnsEqualWidth="false"
+							horizontalSpacing="10" verticalSpacing="15" />
 					</layout>
-					
+
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Name</fixed-text>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" horizontalSpan="2" minWidth="200" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" horizontalSpan="2" minWidth="200"
+								grabExcessHorizontal="true" />
 						</layout-data>
 						<fixed-text>Value</fixed-text>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Description</fixed-text>
 					</widget>
-													
-               <!-- STDIN -->
+
+					<!-- STDIN -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false" verticalAlign="SWT.CENTER"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								grabExcessHorizontal="false" verticalAlign="SWT.CENTER" />
 						</layout-data>
 						<fixed-text>STDIN:</fixed-text>
 					</widget>
-					<browse textStyle="SWT.BORDER" attribute="LL_STDIN"
-						title="Browse" directory="false">
+					<browse textStyle="SWT.BORDER" attribute="LL_STDIN" title="Browse"
+						directory="false">
 						<text-layout-data>
-							<grid-data widthHint="200" verticalAlign="SWT.CENTER"/>
+							<grid-data widthHint="200" verticalAlign="SWT.CENTER" />
 						</text-layout-data>
 						<button-layout-data>
-							<grid-data widthHint="200" verticalAlign="SWT.CENTER"/>
+							<grid-data widthHint="200" verticalAlign="SWT.CENTER" />
 						</button-layout-data>
 					</browse>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_STDIN#description}</fixed-text>
 					</widget>
-													
-               <!-- STDOUT -->
+
+					<!-- STDOUT -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false" verticalAlign="SWT.CENTER"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								grabExcessHorizontal="false" verticalAlign="SWT.CENTER" />
 						</layout-data>
 						<fixed-text>STDOUT:</fixed-text>
 					</widget>
-					<browse textStyle="SWT.BORDER" attribute="LL_STDOUT"
-						title="Browse" directory="false">
+					<browse textStyle="SWT.BORDER" attribute="LL_STDOUT" title="Browse"
+						directory="false">
 						<text-layout-data>
-							<grid-data widthHint="200" verticalAlign="SWT.CENTER"/>
+							<grid-data widthHint="200" verticalAlign="SWT.CENTER" />
 						</text-layout-data>
 						<button-layout-data>
-							<grid-data widthHint="200" verticalAlign="SWT.CENTER"/>
+							<grid-data widthHint="200" verticalAlign="SWT.CENTER" />
 						</button-layout-data>
 					</browse>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_STDOUT#description}</fixed-text>
 					</widget>
-													
-               <!-- STDERR -->
+
+					<!-- STDERR -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false" verticalAlign="SWT.CENTER"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								grabExcessHorizontal="false" verticalAlign="SWT.CENTER" />
 						</layout-data>
 						<fixed-text>STDERR:</fixed-text>
 					</widget>
-					<browse textStyle="SWT.BORDER" attribute="LL_STDERR"
-						title="Browse" directory="false">
+					<browse textStyle="SWT.BORDER" attribute="LL_STDERR" title="Browse"
+						directory="false">
 						<text-layout-data>
-							<grid-data widthHint="200" verticalAlign="SWT.CENTER"/>
+							<grid-data widthHint="200" verticalAlign="SWT.CENTER" />
 						</text-layout-data>
 						<button-layout-data>
-							<grid-data widthHint="200" verticalAlign="SWT.CENTER"/>
+							<grid-data widthHint="200" verticalAlign="SWT.CENTER" />
 						</button-layout-data>
 					</browse>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_STDERR#description}</fixed-text>
 					</widget>
-													
-               <!-- Shell -->
+
+					<!-- Shell -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false" verticalAlign="SWT.CENTER"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								grabExcessHorizontal="false" verticalAlign="SWT.CENTER" />
 						</layout-data>
 						<fixed-text>Shell:</fixed-text>
 					</widget>
-					<browse textStyle="SWT.BORDER" attribute="LL_SHELL"
-						title="Browse" directory="false">
+					<browse textStyle="SWT.BORDER" attribute="LL_SHELL" title="Browse"
+						directory="false">
 						<text-layout-data>
-							<grid-data widthHint="200" verticalAlign="SWT.CENTER"/>
+							<grid-data widthHint="200" verticalAlign="SWT.CENTER" />
 						</text-layout-data>
 						<button-layout-data>
-							<grid-data widthHint="200" verticalAlign="SWT.CENTER"/>
+							<grid-data widthHint="200" verticalAlign="SWT.CENTER" />
 						</button-layout-data>
 					</browse>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_SHELL#description}</fixed-text>
 					</widget>
-															
-               <!-- Environment variable handling -->
+
+					<!-- Environment variable handling -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Environment:</fixed-text>
 					</widget>
 					<widget type="text" style="SWT.BORDER" attribute="LL_ENVIRONMENT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2"
+								grabExcessHorizontal="true" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_ENVIRONMENT#description}</fixed-text>
 					</widget>
 				</composite>
-				</dynamic>
-				
+			</dynamic>
+
 			<dynamic includeWidgetValuesFrom="General,Scheduling,Runtime,Limits">
 				<title>Nodes/Network</title>
 				<layout>
-					<grid-layout/>
+					<grid-layout />
 				</layout>
-				
+
 				<composite group="true">
 					<layout>
-						<grid-layout numColumns="4" makeColumnsEqualWidth="false" horizontalSpacing="10" verticalSpacing="15"/>
+						<grid-layout numColumns="4" makeColumnsEqualWidth="false"
+							horizontalSpacing="10" verticalSpacing="15" />
 					</layout>
-					
+
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Name</fixed-text>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" horizontalSpan="2"  minWidth="200" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" horizontalSpan="2" minWidth="200"
+								grabExcessHorizontal="true" />
 						</layout-data>
 						<fixed-text>Value</fixed-text>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Description</fixed-text>
 					</widget>
-											
-               <!-- Task blocking factor -->
+
+					<!-- Task blocking factor -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Blocking:</fixed-text>
 					</widget>
-					<widget type="text" style="SWT.BORDER"  attribute="LL_BLOCKING">
+					<widget type="text" style="SWT.BORDER" attribute="LL_BLOCKING">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="true" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_BLOCKING#description}</fixed-text>
 					</widget>
-											
-               <!-- Bulk transfer -->
+
+					<!-- Bulk transfer -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Bulk Transfer:</fixed-text>
 					</widget>
-					<widget type="checkbox" attribute="LL_BULKXFER"
-						style="SWT.LEFT">
+					<widget type="checkbox" attribute="LL_BULKXFER" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" 
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
 								grabExcessHorizontal="false" horizontalSpan="2" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_BULKXFER#description}</fixed-text>
 					</widget>
-					
-					<!--  MPI adapter specification -->
+
+					<!-- MPI adapter specification -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Network for MPI:</fixed-text>
 					</widget>
-					<widget type="text" style="SWT.BORDER"  attribute="LL_NETWORK_MPI">
+					<widget type="text" style="SWT.BORDER" attribute="LL_NETWORK_MPI">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="true" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_NETWORK_MPI#description}</fixed-text>
 					</widget>
-					
-					<!--  LAPI adapter specification --> 
+
+					<!-- LAPI adapter specification -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Network for LAPI:</fixed-text>
 					</widget>
-					<widget type="text" style="SWT.BORDER"  attribute="LL_NETWORK_LAPI">
+					<widget type="text" style="SWT.BORDER" attribute="LL_NETWORK_LAPI">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="true" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_NETWORK_LAPI#description}</fixed-text>
 					</widget>
-					
-					<!--  MPI/LAPI adapter specification --> 
+
+					<!-- MPI/LAPI adapter specification -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Network for MPI/LAPI:</fixed-text>
 					</widget>
-					<widget type="text" style="SWT.BORDER"  attribute="LL_NETWORK_MPI_LAPI">
+					<widget type="text" style="SWT.BORDER" attribute="LL_NETWORK_MPI_LAPI">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="true" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_NETWORK_MPI_LAPI#description}</fixed-text>
 					</widget>
-					
-					<!--  BG Block  --> 
+
+					<!-- BG Block -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Node block:</fixed-text>
 					</widget>
-					<widget type="text" style="SWT.BORDER"  attribute="LL_BG_BLOCK">
+					<widget type="text" style="SWT.BORDER" attribute="LL_BG_BLOCK">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="true" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_BG_BLOCK#description}</fixed-text>
 					</widget>
-					
-					<!--  BG Block Connectivity --> 
+
+					<!-- BG Block Connectivity -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Node block connectivity:</fixed-text>
 					</widget>
-					<widget type="text" style="SWT.BORDER"  attribute="LL_BG_CONNECTIVITY">
+					<widget type="text" style="SWT.BORDER" attribute="LL_BG_CONNECTIVITY">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="true" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_BG_CONNECTIVITY#description}</fixed-text>
 					</widget>
-					
-					<!--  BG Job Shape --> 
+
+					<!-- BG Job Shape -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Job shape:</fixed-text>
 					</widget>
-					<widget type="text" style="SWT.BORDER"  attribute="LL_BG_SHAPE">
+					<widget type="text" style="SWT.BORDER" attribute="LL_BG_SHAPE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="true" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_BG_SHAPE#description}</fixed-text>
 					</widget>
-					
-					<!--  BG Job Size --> 
+
+					<!-- BG Job Size -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Job size:</fixed-text>
 					</widget>
-					<widget type="text" style="SWT.BORDER"  attribute="LL_BG_SIZE">
+					<widget type="text" style="SWT.BORDER" attribute="LL_BG_SIZE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="true" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_BG_SIZE#description}</fixed-text>
 					</widget>
-					
-					<!--  Min node  --> 
+
+					<!-- Min node -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Minimum node count:</fixed-text>
 					</widget>
-					<widget type="text" style="SWT.BORDER"  attribute="LL_MIN_NODES">
+					<widget type="text" style="SWT.BORDER" attribute="LL_MIN_NODES">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="true" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_MIN_NODES#description}</fixed-text>
 					</widget>
-					
-					<!--  Max node  --> 
+
+					<!-- Max node -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Maximum node count:</fixed-text>
 					</widget>
-					<widget type="text" style="SWT.BORDER"  attribute="LL_MAX_NODES">
+					<widget type="text" style="SWT.BORDER" attribute="LL_MAX_NODES">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="true" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_MAX_NODES#description}</fixed-text>
 					</widget>
-					
-					<!--  Task geometry  --> 
+
+					<!-- Task geometry -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Task geometry:</fixed-text>
 					</widget>
-					<widget type="text" style="SWT.BORDER"  attribute="LL_TASK_GEOMETRY">
+					<widget type="text" style="SWT.BORDER" attribute="LL_TASK_GEOMETRY">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="true" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_TASK_GEOMETRY#description}</fixed-text>
 					</widget>
-					
-					<!--  Tasks per node  --> 
+
+					<!-- Tasks per node -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Tasks per node:</fixed-text>
 					</widget>
-					<widget type="text" style="SWT.BORDER"  attribute="LL_TASKS_PER_NODE">
+					<widget type="text" style="SWT.BORDER" attribute="LL_TASKS_PER_NODE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="true" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_TASKS_PER_NODE#description}</fixed-text>
 					</widget>
-					
-					<!--  Total tasks  --> 
+
+					<!-- Total tasks -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Total tasks:</fixed-text>
 					</widget>
-					<widget type="text" style="SWT.BORDER"  attribute="LL_TOTAL_TASKS">
+					<widget type="text" style="SWT.BORDER" attribute="LL_TOTAL_TASKS">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="true" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_TOTAL_TASKS#description}</fixed-text>
 					</widget>
 				</composite>
 			</dynamic>
-			
+
 			<dynamic includeWidgetValuesFrom="General,Scheduling,Runtime,Nodes/Network">
 				<title>Limits</title>
 				<layout>
-					<grid-layout/>
+					<grid-layout />
 				</layout>
-				
+
 				<composite group="true">
 					<layout>
-						<grid-layout numColumns="4" makeColumnsEqualWidth="false" horizontalSpacing="10" verticalSpacing="15"/>
+						<grid-layout numColumns="4" makeColumnsEqualWidth="false"
+							horizontalSpacing="10" verticalSpacing="15" />
 					</layout>
-					
+
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Name</fixed-text>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" horizontalSpan="2" minWidth="200" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" horizontalSpan="2" minWidth="200"
+								grabExcessHorizontal="true" />
 						</layout-data>
 						<fixed-text>Value</fixed-text>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Description</fixed-text>
 					</widget>
-													
-               <!-- Job hard limit -->
+
+					<!-- Job hard limit -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Hard limit:</fixed-text>
 					</widget>
-					<widget type="text" style="SWT.BORDER"  attribute="LL_HARD_LIMIT">
+					<widget type="text" style="SWT.BORDER" attribute="LL_HARD_LIMIT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="true" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_HARD_LIMIT#description}</fixed-text>
 					</widget>
-													
-               <!-- Job soft limit -->
+
+					<!-- Job soft limit -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Soft limit:</fixed-text>
 					</widget>
-					<widget type="text" style="SWT.BORDER"  attribute="LL_SOFT_LIMIT">
+					<widget type="text" style="SWT.BORDER" attribute="LL_SOFT_LIMIT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="true" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_SOFT_LIMIT#description}</fixed-text>
 					</widget>
 
-               <!-- Wall clock limit -->
+					<!-- Wall clock limit -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Wall clock limit:</fixed-text>
 					</widget>
-					<widget type="text" style="SWT.BORDER"  attribute="LL_WALL_CLOCK_LIMIT">
+					<widget type="text" style="SWT.BORDER" attribute="LL_WALL_CLOCK_LIMIT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="true" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:LL_WALL_CLOCK_LIMIT#description}</fixed-text>
 					</widget>
@@ -1219,21 +1402,25 @@
 			<dynamic>
 				<title>Advanced Settings</title>
 				<layout>
-					<grid-layout/>
+					<grid-layout />
 				</layout>
 				<!-- VIEWER group -->
 				<composite group="true">
 					<layout>
-						<grid-layout/>
+						<grid-layout />
 					</layout>
 					<layout-data>
-						<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" grabExcessHorizontal="true"/>
+						<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+							grabExcessHorizontal="true" />
 					</layout-data>
-					<viewer name="PESettings" style="SWT.BORDER | SWT.MULTI" sort="true" type="table">
+					<viewer name="PESettings" style="SWT.BORDER | SWT.MULTI"
+						sort="true" type="table">
 						<layout-data>
-							<grid-data widthHint="600" heightHint="200" horizontalSpan="1" />
+							<grid-data widthHint="600" heightHint="200"
+								horizontalSpan="1" />
 						</layout-data>
-						<!-- These are the 6 attribute fields mappable to columns. In a "table viewer" the order of the columns is entirely arbitrary -->
+						<!-- These are the 6 attribute fields mappable to columns. In a "table 
+							viewer" the order of the columns is entirely arbitrary -->
 						<column-data name="Name" width="200" />
 						<column-data name="Description" width="200" />
 						<column-data name="Value" width="200" />
@@ -1268,17 +1455,19 @@
 							<include>LL_TASKS_PER_NODE</include>
 							<include>LL_TOTAL_TASKS</include>
 							<include>LL_WALL_CLOCK_LIMIT</include>
-							<include>mpiCommand</include>							
+							<include>mpiCommand</include>
 						</items>
 						<value pattern="export @name='@value'" separator="; " />
 					</viewer>
 				</composite>
 			</dynamic>
 			<import title="Import LoadLeveler Script">
-				<export-for-override name="exportedEnv" style="SWT.BORDER | SWT.MULTI | SWT.V_SCROLL" sort="true" type="table"
+				<export-for-override name="exportedEnv"
+					style="SWT.BORDER | SWT.MULTI | SWT.V_SCROLL" sort="true" type="table"
 					initialAllChecked="true" tooltipEnabled="true">
 					<layout-data>
-						<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" grabExcessHorizontal="true" heightHint="80"/>
+						<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+							grabExcessHorizontal="true" heightHint="80" />
 					</layout-data>
 					<column-data name="Name" width="175" resizable="true">
 						<tooltip>Multi-select and click checkbox to apply change to all rows.</tooltip>
@@ -1297,5 +1486,118 @@
 		</launch-tab>
 	</control-data>
 	<monitor-data schedulerType="LL_BG">
+		<rm:layout xmlns:rm="http://eclipse.org/ptp/rm" xmlns="">
+			<tablelayout id="tl_Run"
+				gid="org.eclipse.ptp.rm.lml.ui.ActiveJobsView" active="true"
+				contenthint="jobs">
+				<column cid="1" pos="0" width="0.1" active="true" key="step" />
+				<column cid="2" pos="1" width="0.1" active="true" key="owner" />
+				<column cid="3" pos="2" width="0.1" active="true" key="queue" />
+				<column cid="4" pos="3" width="0.1" active="true" key="wall" />
+				<column cid="5" pos="4" width="0.1" active="true" key="queuedate" />
+				<column cid="6" pos="5" width="0.1" active="true" key="dispatchdate" />
+				<column cid="7" pos="6" width="0.1" active="true" key="totalcores" />
+				<column cid="8" pos="7" width="0.3" active="true" key="status">
+					<pattern>
+						<select rel="=" value="RUNNING" />
+					</pattern>
+				</column>
+				<column cid="9" pos="8" width="1.0" active="false" key="bg_partalloc" />
+				<column cid="10" pos="9" width="1.0" active="false" key="bg_shape_alloc" />
+				<column cid="11" pos="10" width="1.0" active="false" key="bg_size_alloc" />
+				<column cid="12" pos="11" width="1.0" active="false" key="bg_size_req" />
+				<column cid="13" pos="12" width="1.0" active="false" key="bg_state" />
+				<column cid="14" pos="13" width="1.0" active="false" key="classprio" />
+				<column cid="15" pos="14" width="1.0" active="false" key="comment" />
+				<column cid="16" pos="15" width="1.0" active="false" key="dependency" />
+				<column cid="17" pos="16" width="1.0" active="false" key="favored" />
+				<column cid="18" pos="17" width="1.0" active="false" key="group" />
+				<column cid="19" pos="18" width="1.0" active="false" key="groupprio" />
+				<column cid="20" pos="19" width="1.0" active="false" key="name" />
+				<column cid="21" pos="20" width="1.0" active="false" key="nodelist" />
+				<column cid="22" pos="21" width="1.0" active="false"
+					key="nodelist_boards" />
+				<column cid="23" pos="22" width="1.0" active="false" key="restart" />
+				<column cid="24" pos="23" width="1.0" active="false" key="state" />
+				<column cid="25" pos="24" width="1.0" active="false" key="sysprio" />
+				<column cid="26" pos="25" width="1.0" active="false" key="totaltasks" />
+				<column cid="27" pos="26" width="1.0" active="false" key="userprio" />
+				<column cid="28" pos="27" width="1.0" active="false" key="wallsoft" />
+			</tablelayout>
+			<tablelayout id="tl_WAIT"
+				gid="org.eclipse.ptp.rm.lml.ui.InactiveJobsView" active="true"
+				contenthint="jobs">
+				<column cid="1" pos="0" width="0.1" active="true" key="step" />
+				<column cid="2" pos="1" width="0.1" active="true" key="owner" />
+				<column cid="3" pos="2" width="0.1" active="true" key="queue" />
+				<column cid="4" pos="3" width="0.1" active="true" key="wall" />
+				<column cid="5" pos="4" width="0.1" active="true" key="queuedate" />
+				<column cid="6" pos="5" width="0.1" active="true" key="dispatchdate" />
+				<column cid="7" pos="6" width="0.1" active="true" key="totalcores" />
+				<column cid="8" pos="7" width="0.3" active="true" key="status">
+					<pattern>
+						<select rel="!=" value="RUNNING" />
+					</pattern>
+				</column>
+				<column cid="9" pos="8" width="1.0" active="false" key="bg_partalloc" />
+				<column cid="10" pos="9" width="1.0" active="false" key="bg_partreq" />
+				<column cid="11" pos="10" width="1.0" active="false" key="bg_shape_alloc" />
+				<column cid="12" pos="11" width="1.0" active="false" key="bg_size_alloc" />
+				<column cid="13" pos="12" width="1.0" active="false" key="bg_size_req" />
+				<column cid="14" pos="13" width="1.0" active="false" key="classprio" />
+				<column cid="15" pos="14" width="1.0" active="false" key="comment" />
+				<column cid="16" pos="15" width="1.0" active="false" key="dependency" />
+				<column cid="17" pos="16" width="1.0" active="false" key="detailedstatus" />
+				<column cid="18" pos="17" width="1.0" active="false" key="favored" />
+				<column cid="19" pos="18" width="1.0" active="false" key="group" />
+				<column cid="20" pos="19" width="1.0" active="false" key="groupprio" />
+				<column cid="21" pos="20" width="1.0" active="false" key="name" />
+				<column cid="22" pos="21" width="1.0" active="false" key="nodelist" />
+				<column cid="23" pos="22" width="1.0" active="false"
+					key="nodelist_boards" />
+				<column cid="24" pos="23" width="1.0" active="false" key="restart" />
+				<column cid="25" pos="24" width="1.0" active="false" key="state" />
+				<column cid="26" pos="25" width="1.0" active="false" key="sysprio" />
+				<column cid="27" pos="26" width="1.0" active="false" key="totaltasks" />
+				<column cid="28" pos="27" width="1.0" active="false" key="userprio" />
+				<column cid="29" pos="28" width="1.0" active="false" key="wallsoft" />
+			</tablelayout>
+			<nodedisplaylayout id="nodedisplay" gid="nd_1"
+				active="true">
+				<schemehint>
+					<el1 tagname="row" min="0" max="6" mask="R%02d">
+						<el2 tagname="rack" min="0" max="3" mask="%02d">
+							<el3 tagname="midplane" min="0" max="1" mask="-M%01d">
+								<el4 tagname="nodecard" min="0" max="15" mask="-N%02d">
+									<el5 tagname="computecard" min="0" max="31" mask="-C%02d">
+										<el6 tagname="core" min="0" max="15" mask="-%01d">
+										</el6>
+									</el5>
+								</el4>
+							</el3>
+						</el2>
+					</el1>
+				</schemehint>
+				<el0 vgap="10" transparent="false" showtitle="false" rows="7"
+					mouseborder="0" maxlevel="4" hgap="0" fontsize="10" fontfamily="Monospaced"
+					cols="1" border="0" background="#fff">
+					<el1 showtitle="true" rows="1" min="0" maxlevel="4" max="6"
+						cols="4" titlebackground="#aaf" bordercolor="#aaf" border="2"
+						hgap="5">
+						<el2 showtitle="false" showfulltitle="true" rows="2" min="0"
+							maxlevel="4" max="3" highestrowfirst="true" cols="1" border="0">
+							<el3 vgap="0" showtitle="true" showfulltitle="true" rows="4"
+								min="0" maxlevel="5" max="1" highestrowfirst="true" hgap="0"
+								fontsize="8" cols="4">
+								<el4 rows="4" min="0" maxlevel="5" max="15" cols="8">
+									<el5 rows="1" min="0" maxlevel="6" max="31" cols="4">
+									</el5>
+								</el4>
+							</el3>
+						</el2>
+					</el1>
+				</el0>
+			</nodedisplaylayout>
+		</rm:layout>
 	</monitor-data>
 </resource-manager-builder>
diff --git a/rms/org.eclipse.ptp.rm.jaxb.contrib/data/de.fz-juelich.juropa.torque.batch.xml b/rms/org.eclipse.ptp.rm.jaxb.contrib/data/de.fz-juelich.juropa.torque.batch.xml
index 95b3b00..3d736d0 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.contrib/data/de.fz-juelich.juropa.torque.batch.xml
+++ b/rms/org.eclipse.ptp.rm.jaxb.contrib/data/de.fz-juelich.juropa.torque.batch.xml
@@ -1,28 +1,32 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- ******************************************************************************* -->
-<!-- * Copyright (c) 2011-2012 University of Illinois and others. All rights reserved. This program -->
-<!-- * and the accompanying materials are made available under the terms of the -->
-<!-- * Eclipse Public License v1.0 which accompanies this distribution, and is -->
+<!-- * Copyright (c) 2011-2012 University of Illinois and others. All rights 
+	reserved. This program -->
+<!-- * and the accompanying materials are made available under the terms 
+	of the -->
+<!-- * Eclipse Public License v1.0 which accompanies this distribution, and 
+	is -->
 <!-- * available at http://www.eclipse.org/legal/epl-v10.html -->
 <!-- * -->
 <!-- * Contributors: -->
 <!-- * Albert L. Rossi - design and implementation -->
 <!-- * Carsten Karbach - additional parameters for juropa job submission -->
 <!-- ****************************************************************************** -->
-<resource-manager-builder 
-	xmlns="http://eclipse.org/ptp/rm" 
+<resource-manager-builder xmlns="http://eclipse.org/ptp/rm"
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://eclipse.org/ptp/rm http://eclipse.org/ptp/schemas/v1.1/rm.xsd" 
+	xsi:schemaLocation="http://eclipse.org/ptp/rm http://eclipse.org/ptp/schemas/v1.2/rm.xsd"
 	name="de.fz-juelich.juropa.torque.batch">
 	<control-data>
-		<!-- Set the default value of this attribute if MSUB is installed in a non-standard location -->
-		<attribute name="bindir" visible="false"/>
-		<!-- This is a necessary attribute for the functioning of LML; link it to the batch-specific variable name -->
+		<!-- Set the default value of this attribute if MSUB is installed in a 
+			non-standard location -->
+		<attribute name="bindir" visible="false" />
+		<!-- This is a necessary attribute for the functioning of LML; link it 
+			to the batch-specific variable name -->
 		<attribute name="control.queue.name" visible="false">
 			<link-value-to>destination</link-value-to>
 		</attribute>
 		<!-- We set this to invisible because the values are not really modifiable -->
-		<attribute name="queues" visible="false"/>
+		<attribute name="queues" visible="false" />
 		<!-- Needed by RM internals for fetch; name is fixed by convention -->
 		<attribute name="stdout_remote_path" visible="false">
 			<default>${ptp_rm:directory#value}/${ptp_rm:Job_Name#value}.o${ptp_rm:@jobId#default}</default>
@@ -116,7 +120,7 @@
 the base name of the job script or STDIN.]]></tooltip>
 			<default>ptp_job</default>
 			<validator>
-				<regex expression="[a-zA-Z_][0-9a-zA-Z_]*"/>
+				<regex expression="[a-zA-Z_][0-9a-zA-Z_]*" />
 				<error-message>must be at least one alphanumeric character</error-message>
 			</validator>
 		</attribute>
@@ -187,7 +191,8 @@
 in bytes or words (word size of the host): b (bytes), 
 w (words), kb/kw (kilo), mb/mw (mega), gb/bw (giga).]]></tooltip>
 		</attribute>
-		<attribute name="Resource_List.nice" type="integer" min="0" max="10">
+		<attribute name="Resource_List.nice" type="integer" min="0"
+			max="10">
 			<description>The nice value under which the job is to be run.</description>
 			<tooltip>0 to 10.</tooltip>
 			<default>0</default>
@@ -207,7 +212,8 @@
 three processors on one red node: -l nodes=2:blue:ppn=2+red:ppn=3.]]></tooltip>
 			<default>1</default>
 		</attribute>
-		<attribute name="Resource_List.ompthreads" type="integer" min="1">
+		<attribute name="Resource_List.ompthreads" type="integer"
+			min="1">
 			<description>Number of threads per processor for Open MP jobs.</description>
 			<default>1</default>
 		</attribute>
@@ -238,7 +244,7 @@
 			<tooltip>Format: [[hours:]minutes:]seconds[.milliseconds].</tooltip>
 			<default>00:30:00</default>
 			<validator>
-				<regex expression="\d\d:\d\d:\d\d"/>
+				<regex expression="\d\d:\d\d:\d\d" />
 				<error-message>format must be hh:mm:ss</error-message>
 			</validator>
 		</attribute>
@@ -275,109 +281,144 @@
 				<arg>#!/bin/bash</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -A">#MSUB -A ${ptp_rm:Account_Name#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -A">#MSUB -A ${ptp_rm:Account_Name#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -c">#MSUB -c ${ptp_rm:Checkpoint#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -c">#MSUB -c ${ptp_rm:Checkpoint#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -W depend=">#MSUB -W depend=${ptp_rm:depend#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -W depend=">#MSUB -W depend=${ptp_rm:depend#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -q">#MSUB -q ${ptp_rm:destination#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -q">#MSUB -q ${ptp_rm:destination#value}
+				</arg>
 			</line>
 			<line>
 				<arg isUndefinedIfMatches="#MSUB -C">#MSUB -C ${ptp_rm:line#value}</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -e">#MSUB -e ${ptp_rm:Error_Path#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -e">#MSUB -e ${ptp_rm:Error_Path#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -W group_list=">#MSUB -W group_list=${ptp_rm:group_list#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -W group_list=">#MSUB -W
+					group_list=${ptp_rm:group_list#value}</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -h">#MSUB -h ${ptp_rm:Hold_Types#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -h">#MSUB -h ${ptp_rm:Hold_Types#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -N">#MSUB -N ${ptp_rm:Job_Name#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -N">#MSUB -N ${ptp_rm:Job_Name#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -j">#MSUB -j ${ptp_rm:Join_Path#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -j">#MSUB -j ${ptp_rm:Join_Path#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -k">#MSUB -k ${ptp_rm:Keep_Files#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -k">#MSUB -k ${ptp_rm:Keep_Files#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -m">#MSUB -m ${ptp_rm:Mail_Points#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -m">#MSUB -m ${ptp_rm:Mail_Points#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -M">#MSUB -M ${ptp_rm:Mail_Users#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -M">#MSUB -M ${ptp_rm:Mail_Users#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -o">#MSUB -o ${ptp_rm:Output_Path#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -o">#MSUB -o ${ptp_rm:Output_Path#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -p">#MSUB -p ${ptp_rm:Priority#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -p">#MSUB -p ${ptp_rm:Priority#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -r">#MSUB -r ${ptp_rm:Rerunnable#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -r">#MSUB -r ${ptp_rm:Rerunnable#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -l arch=">#MSUB -l arch=${ptp_rm:Resource_List.arch#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -l arch=">#MSUB -l
+					arch=${ptp_rm:Resource_List.arch#value}</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -l cput=">#MSUB -l cput=${ptp_rm:Resource_List.cput#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -l cput=">#MSUB -l
+					cput=${ptp_rm:Resource_List.cput#value}</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -l file=">#MSUB -l file=${ptp_rm:Resource_List.file#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -l file=">#MSUB -l
+					file=${ptp_rm:Resource_List.file#value}</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -l host=">#MSUB -l host=${ptp_rm:Resource_List.host#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -l host=">#MSUB -l
+					host=${ptp_rm:Resource_List.host#value}</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -l mem=">#MSUB -l mem=${ptp_rm:Resource_List.mem#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -l mem=">#MSUB -l
+					mem=${ptp_rm:Resource_List.mem#value}</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -l nice=">#MSUB -l nice=${ptp_rm:Resource_List.nice#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -l nice=">#MSUB -l
+					nice=${ptp_rm:Resource_List.nice#value}</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -l nodes=">#MSUB -l nodes=${ptp_rm:Resource_List.nodes#value}:ppn=${ptp_rm:processesPerNode#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -l nodes=">#MSUB -l
+					nodes=${ptp_rm:Resource_List.nodes#value}:ppn=${ptp_rm:processesPerNode#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -v tpt=">#MSUB -v tpt=${ptp_rm:threadsPerTask#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -v tpt=">#MSUB -v
+					tpt=${ptp_rm:threadsPerTask#value}</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -l ompthreads=">#MSUB -l ompthreads=${ptp_rm:Resource_List.ompthreads#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -l ompthreads=">#MSUB -l
+					ompthreads=${ptp_rm:Resource_List.ompthreads#value}</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -l pcput=">#MSUB -l pcput=${ptp_rm:Resource_List.pcput#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -l pcput=">#MSUB -l
+					pcput=${ptp_rm:Resource_List.pcput#value}</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -l pmem=">#MSUB -l pmem=${ptp_rm:Resource_List.pmem#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -l pmem=">#MSUB -l
+					pmem=${ptp_rm:Resource_List.pmem#value}</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -l pvmem=">#MSUB -l pvmem=${ptp_rm:Resource_List.pvmem#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -l pvmem=">#MSUB -l
+					pvmem=${ptp_rm:Resource_List.pvmem#value}</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -l vmem=">#MSUB -l vmem=${ptp_rm:Resource_List.vmem#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -l vmem=">#MSUB -l
+					vmem=${ptp_rm:Resource_List.vmem#value}</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -l walltime=">#MSUB -l walltime=${ptp_rm:Resource_List.walltime#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -l walltime=">#MSUB -l
+					walltime=${ptp_rm:Resource_List.walltime#value}</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -S">#MSUB -S ${ptp_rm:Shell_Path_List#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -S">#MSUB -S
+					${ptp_rm:Shell_Path_List#value}</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -W stagein=">#MSUB -W stagein=${ptp_rm:stagein#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -W stagein=">#MSUB -W
+					stagein=${ptp_rm:stagein#value}</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -W stageout=">#MSUB -W stageout=${ptp_rm:stageout#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -W stageout=">#MSUB -W
+					stageout=${ptp_rm:stageout#value}</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -u">#MSUB -u ${ptp_rm:User_List#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -u">#MSUB -u ${ptp_rm:User_List#value}
+				</arg>
 			</line>
 			<line>
-				<arg isUndefinedIfMatches="#MSUB -v">#MSUB -v ${ptp_rm:Variable_List#value}</arg>
+				<arg isUndefinedIfMatches="#MSUB -v">#MSUB -v ${ptp_rm:Variable_List#value}
+				</arg>
 			</line>
 			<line>
 				<arg>MPI_ARGS="-np ${ptp_rm:mpiNumberOfProcesses#value}"</arg>
@@ -405,7 +446,8 @@
 				<arg resolve="false">else</arg>
 			</line>
 			<line>
-				<arg> COMMAND="${ptp_rm:executablePath#value} ${ptp_rm:progArgs#value}"</arg>
+				<arg> COMMAND="${ptp_rm:executablePath#value}
+					${ptp_rm:progArgs#value}"</arg>
 			</line>
 			<line>
 				<arg resolve="false">fi</arg>
@@ -426,13 +468,14 @@
 					<match>
 						<expression>Queue: ([\w\d]+)</expression>
 						<add field="value">
-							<entry valueGroup="1"/>
+							<entry valueGroup="1" />
 						</add>
 					</match>
 				</target>
 			</stdout-parser>
 		</start-up-command>
-		<submit-batch name="submit-batch" directory="${ptp_rm:directory#value}" waitForId="true">
+		<submit-batch name="submit-batch" directory="${ptp_rm:directory#value}"
+			waitForId="true">
 			<arg>${ptp_rm:bindir#value}msub</arg>
 			<arg>${ptp_rm:managed_file_for_script#value}</arg>
 			<stdout-parser delim="\n" all="true" save="1">
@@ -441,42 +484,42 @@
 					<match>
 						<expression>([\d]+).*</expression>
 						<set field="name">
-							<entry valueGroup="0"/>
+							<entry valueGroup="0" />
 						</set>
 						<append field="name" separator=".">
-							<entry value="jj28b01"/>
+							<entry value="jj28b01" />
 						</append>
 						<set field="default">
-							<entry valueGroup="1"/>
+							<entry valueGroup="1" />
 						</set>
 						<set field="value">
-							<entry value="SUBMITTED"/>
+							<entry value="SUBMITTED" />
 						</set>
 					</match>
 					<match>
 						<expression>([\d]+)([.])(.+)[\s]+.*</expression>
 						<append field="name">
-							<entry valueGroup="1"/>
-							<entry valueGroup="2"/>
-							<entry valueGroup="3"/>
+							<entry valueGroup="1" />
+							<entry valueGroup="2" />
+							<entry valueGroup="3" />
 						</append>
 						<set field="default">
-							<entry valueGroup="1"/>
+							<entry valueGroup="1" />
 						</set>
 						<set field="value">
-							<entry value="SUBMITTED"/>
+							<entry value="SUBMITTED" />
 						</set>
 					</match>
 					<match>
 						<expression>([\d]+)[.].+</expression>
 						<set field="name">
-							<entry valueGroup="0"/>
+							<entry valueGroup="0" />
 						</set>
 						<set field="default">
-							<entry valueGroup="1"/>
+							<entry valueGroup="1" />
 						</set>
 						<set field="value">
-							<entry value="SUBMITTED"/>
+							<entry value="SUBMITTED" />
 						</set>
 					</match>
 				</target>
@@ -484,7 +527,7 @@
 					<match>
 						<expression flags="DOTALL|UNIX_LINES">.*Job not submitted.*</expression>
 						<set field="value">
-							<entry value="FAILED"/>
+							<entry value="FAILED" />
 						</set>
 					</match>
 				</target>
@@ -493,7 +536,7 @@
 				<target ref="@jobId">
 					<match>
 						<expression>.*Job not submitted.*</expression>
-						<throw message="Job Submit Failed"/>
+						<throw message="Job Submit Failed" />
 					</match>
 				</target>
 			</stderr-parser>
@@ -504,51 +547,52 @@
 			<stdout-parser delim="\n">
 				<target ref="@jobId">
 					<match>
-						<expression>[\d]+[.].+[\s]+.+[\s]+.+[\s]+.+[\s]+([A-Z])[\s]+.+</expression>
+						<expression>[\d]+[.].+[\s]+.+[\s]+.+[\s]+.+[\s]+([A-Z])[\s]+.+
+						</expression>
 						<set field="value">
-							<entry valueGroup="1"/>
+							<entry valueGroup="1" />
 						</set>
 					</match>
 					<test op="EQ">
 						<value>#value</value>
 						<value>Q</value>
 						<set field="value">
-							<entry value="QUEUED_ACTIVE"/>
+							<entry value="QUEUED_ACTIVE" />
 						</set>
 					</test>
 					<test op="EQ">
 						<value>#value</value>
 						<value>R</value>
 						<set field="value">
-							<entry value="RUNNING"/>
+							<entry value="RUNNING" />
 						</set>
 					</test>
 					<test op="EQ">
 						<value>#value</value>
 						<value>S</value>
 						<set field="value">
-							<entry value="SUSPENDED"/>
+							<entry value="SUSPENDED" />
 						</set>
 					</test>
 					<test op="EQ">
 						<value>#value</value>
 						<value>C</value>
 						<set field="value">
-							<entry value="COMPLETED"/>
+							<entry value="COMPLETED" />
 						</set>
 					</test>
 					<test op="EQ">
 						<value>#value</value>
 						<value>E</value>
 						<set field="value">
-							<entry value="COMPLETED"/>
+							<entry value="COMPLETED" />
 						</set>
 					</test>
 					<test op="EQ">
 						<value>#value</value>
 						<value>H</value>
 						<set field="value">
-							<entry value="SYSTEM_ON_HOLD"/>
+							<entry value="SYSTEM_ON_HOLD" />
 						</set>
 					</test>
 				</target>
@@ -558,7 +602,7 @@
 					<match>
 						<expression>.+</expression>
 						<set field="value">
-							<entry value="COMPLETED"/>
+							<entry value="COMPLETED" />
 						</set>
 					</match>
 				</target>
@@ -572,219 +616,262 @@
 			<dynamic>
 				<title>Basic Settings</title>
 				<layout>
-					<grid-layout/>
+					<grid-layout />
 				</layout>
 				<!-- ATTRIBUTES group -->
 				<composite group="true">
 					<layout>
-						<grid-layout numColumns="4" makeColumnsEqualWidth="false" horizontalSpacing="10" verticalSpacing="15"/>
+						<grid-layout numColumns="4" makeColumnsEqualWidth="false"
+							horizontalSpacing="10" verticalSpacing="15" />
 					</layout>
 					<!-- HEADER -->
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Name</fixed-text>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" horizontalSpan="2"
+								grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Value</fixed-text>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Description</fixed-text>
 					</widget>
 					<!-- row 1 -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<tooltip>${ptp_rm:Job_Name#tooltip}</tooltip>
 						<fixed-text>Job Name: </fixed-text>
 					</widget>
 					<widget type="text" style="SWT.BORDER" attribute="Job_Name">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="false" widthHint="150" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:Job_Name#description}</fixed-text>
 					</widget>
 					<!-- row 2 -->
 					<widget type="label" style="SWT.LEFT">
-                  <layout-data>
-                     <grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
-                  </layout-data>
-                  <tooltip>${ptp_rm:Account_Name#tooltip}</tooltip>
-                  <fixed-text>Account: </fixed-text>
-               </widget>
-               <widget type="text" style="SWT.BORDER" attribute="Account_Name">
-                  <layout-data>
-                     <grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
-                  </layout-data>
-               </widget>
-               <widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
-                  <layout-data>
-                     <grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
-                  </layout-data>
-                  <fixed-text>${ptp_rm:Account_Name#description}</fixed-text>
-               </widget>
-               <!-- row 3 -->
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
+						</layout-data>
+						<tooltip>${ptp_rm:Account_Name#tooltip}</tooltip>
+						<fixed-text>Account: </fixed-text>
+					</widget>
+					<widget type="text" style="SWT.BORDER" attribute="Account_Name">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="false" widthHint="150" />
+						</layout-data>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
+						</layout-data>
+						<fixed-text>${ptp_rm:Account_Name#description}</fixed-text>
+					</widget>
+					<!-- row 3 -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<tooltip>${ptp_rm:destination#tooltip}</tooltip>
 						<fixed-text>Queue: </fixed-text>
 					</widget>
-					<widget type="combo" style="SWT.BORDER" readOnly="true" attribute="destination">
+					<widget type="combo" style="SWT.BORDER" readOnly="true"
+						attribute="destination">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="false" />
 						</layout-data>
 						<items-from>queues</items-from>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:destination#description}</fixed-text>
 					</widget>
 					<!-- row 4 -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<tooltip>${ptp_rm:Resource_List.nodes#tooltip}</tooltip>
 						<fixed-text>Number of nodes: </fixed-text>
 					</widget>
 					<widget type="text" style="SWT.BORDER" attribute="Resource_List.nodes">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="false" widthHint="150" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:Resource_List.nodes#description}</fixed-text>
 					</widget>
 					<!-- row 5 -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<tooltip>${ptp_rm:Resource_List.mem#tooltip}</tooltip>
 						<fixed-text>Total Memory Needed: </fixed-text>
 					</widget>
 					<widget type="text" style="SWT.BORDER" attribute="Resource_List.mem">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="false" widthHint="150" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:Resource_List.mem#description}</fixed-text>
 					</widget>
 					<!-- row 6 -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<tooltip>${ptp_rm:Resource_List.walltime#tooltip}</tooltip>
 						<fixed-text>Wallclock Time: </fixed-text>
 					</widget>
 					<widget type="text" style="SWT.BORDER" attribute="Resource_List.walltime">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="false" widthHint="150" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:Resource_List.walltime#description}</fixed-text>
 					</widget>
 					<!-- row 7 -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>MPI Command: </fixed-text>
 					</widget>
-					<widget type="combo" style="SWT.BORDER" readOnly="false" attribute="mpiCommand">
+					<widget type="combo" style="SWT.BORDER" readOnly="false"
+						attribute="mpiCommand">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								horizontalSpan="2" grabExcessHorizontal="false" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:mpiCommand#description}</fixed-text>
 					</widget>
 					<!-- row 8 -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Processes per Node: </fixed-text>
 					</widget>
 					<widget type="spinner" style="SWT.BORDER" attribute="processesPerNode">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="false" widthHint="100"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" horizontalSpan="2"
+								grabExcessHorizontal="false" widthHint="100" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:processesPerNode#description}</fixed-text>
 					</widget>
 					<!-- row 9 -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>Threads per Task: </fixed-text>
 					</widget>
 					<widget type="spinner" style="SWT.BORDER" attribute="threadsPerTask">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="false" widthHint="100"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" horizontalSpan="2"
+								grabExcessHorizontal="false" widthHint="100" />
 						</layout-data>
 					</widget>
 					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>${ptp_rm:threadsPerTask#description}</fixed-text>
 					</widget>
 					<!-- row 10 -->
 					<widget type="label" style="SWT.LEFT">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<fixed-text>MPI Number of Tasks: </fixed-text>
 					</widget>
 					<widget type="spinner" style="SWT.BORDER" attribute="mpiNumberOfProcesses">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="false" widthHint="100"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" horizontalSpan="2"
+								grabExcessHorizontal="false" widthHint="100" />
 						</layout-data>
 					</widget>
-					<widget type="text" readOnly="true" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+					<widget type="text" readOnly="true" style="SWT.LEFT"
+						foreground="SWT.COLOR_DARK_BLUE">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+							<grid-data horizontalAlign="SWT.BEGINNING"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="false" />
 						</layout-data>
 						<dynamic-text>
-							<arg>The '-np' value (Should match with nodes*ppn/tpt = ${ptp_rm:Resource_List.nodes#value}*${ptp_rm:processesPerNode#value}/${ptp_rm:threadsPerTask#value})</arg>
+							<arg>The '-np' value (Should match with nodes*ppn/tpt =
+								${ptp_rm:Resource_List.nodes#value}*${ptp_rm:processesPerNode#value}/${ptp_rm:threadsPerTask#value})
+							</arg>
 						</dynamic-text>
 					</widget>
 				</composite>
@@ -792,20 +879,22 @@
 			<dynamic>
 				<title>Advanced Settings</title>
 				<layout>
-					<grid-layout/>
+					<grid-layout />
 				</layout>
 				<!-- QUEUES remote path group -->
 				<composite group="true">
 					<layout>
-						<grid-layout numColumns="3"/>
+						<grid-layout numColumns="3" />
 					</layout>
 					<widget type="label" style="SWT.LEFT">
 						<tooltip>${ptp_rm:destination#tooltip}</tooltip>
 						<fixed-text>Queue: </fixed-text>
 					</widget>
-					<widget type="combo" style="SWT.BORDER" readOnly="true" attribute="destination">
+					<widget type="combo" style="SWT.BORDER" readOnly="true"
+						attribute="destination">
 						<layout-data>
-							<grid-data widthHint="150" horizontalAlign="SWT.FILL" horizontalSpan="2"/>
+							<grid-data widthHint="150" horizontalAlign="SWT.FILL"
+								horizontalSpan="2" />
 						</layout-data>
 						<items-from>queues</items-from>
 					</widget>
@@ -813,23 +902,29 @@
 				<!-- VIEWER group -->
 				<composite group="true">
 					<layout>
-						<grid-layout/>
+						<grid-layout />
 					</layout>
 					<layout-data>
-						<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" grabExcessHorizontal="true"/>
+						<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+							grabExcessHorizontal="true" />
 					</layout-data>
-					<widget type="text" readOnly="true" style="SWT.BORDER | SWT.WRAP | SWT.V_SCROLL">
+					<widget type="text" readOnly="true"
+						style="SWT.BORDER | SWT.WRAP | SWT.V_SCROLL">
 						<layout-data>
-							<grid-data heightHint="75" horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" grabExcessHorizontal="true"/>
+							<grid-data heightHint="75" horizontalAlign="SWT.FILL"
+								verticalAlign="SWT.CENTER" grabExcessHorizontal="true" />
 						</layout-data>
 						<dynamic-text>
 							<arg>${ptp_rm:allAttributes#value}</arg>
-							<arg isUndefinedIfMatches=" destination=''"> destination='${ptp_rm:destination#value}'</arg>
+							<arg isUndefinedIfMatches=" destination=''">
+								destination='${ptp_rm:destination#value}'</arg>
 						</dynamic-text>
 					</widget>
-					<viewer name="allAttributes" style="SWT.BORDER | SWT.MULTI | SWT.V_SCROLL" sort="true" type="table" initialAllChecked="false">
+					<viewer name="allAttributes" style="SWT.BORDER | SWT.MULTI | SWT.V_SCROLL"
+						sort="true" type="table" initialAllChecked="false">
 						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" grabExcessHorizontal="true"/>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+								grabExcessHorizontal="true" />
 						</layout-data>
 						<column-data name="Name" width="175" resizable="true">
 							<tooltip>Multi-select and click checkbox to apply change to all rows.</tooltip>
@@ -840,15 +935,17 @@
 						<items allPredefined="true">
 							<exclude>destination</exclude>
 						</items>
-						<value pattern="@name='@value'"/>
+						<value pattern="@name='@value'" />
 					</viewer>
 				</composite>
 			</dynamic>
 			<import title="Import MSUB Script">
-				<export-for-override name="exportedEnv" style="SWT.BORDER | SWT.MULTI | SWT.V_SCROLL" sort="true" type="table"
+				<export-for-override name="exportedEnv"
+					style="SWT.BORDER | SWT.MULTI | SWT.V_SCROLL" sort="true" type="table"
 					initialAllChecked="true" tooltipEnabled="true">
 					<layout-data>
-						<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" grabExcessHorizontal="true" heightHint="80"/>
+						<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER"
+							grabExcessHorizontal="true" heightHint="80" />
 					</layout-data>
 					<column-data name="Name" width="175" resizable="true">
 						<tooltip>Multi-select and click checkbox to apply change to all rows.</tooltip>
@@ -867,5 +964,123 @@
 		</launch-tab>
 	</control-data>
 	<monitor-data schedulerType="TORQUE">
+		<rm:layout version="1.0" xmlns="" xmlns:rm="http://eclipse.org/ptp/rm">
+			<tablelayout id="tl_Run"
+				gid="org.eclipse.ptp.rm.lml.ui.ActiveJobsView" active="true"
+				contenthint="jobs">
+				<column cid="1" pos="0" width="0.1" active="true" key="step" />
+				<column cid="2" pos="1" width="0.1" active="true" key="owner" />
+				<column cid="3" pos="2" width="0.1" active="true" key="queue" />
+				<column cid="4" pos="3" width="0.1" active="true" key="wall" />
+				<column cid="5" pos="4" width="0.1" active="true" key="queuedate" />
+				<column cid="6" pos="5" width="0.1" active="true" key="dispatchdate" />
+				<column cid="7" pos="6" width="0.1" active="true" key="totalcores" />
+				<column cid="8" pos="7" width="0.3" active="true" key="status">
+					<pattern>
+						<select rel="=" value="RUNNING" />
+					</pattern>
+				</column>
+				<column cid="9" pos="8" width="1.0" active="false" key="dependency" />
+				<column cid="10" pos="9" width="1.0" active="false" key="detailedstatus" />
+				<column cid="11" pos="10" width="1.0" active="false" key="group" />
+				<column cid="12" pos="11" width="1.0" active="false" key="name" />
+				<column cid="13" pos="12" width="1.0" active="false" key="nodelist" />
+				<column cid="14" pos="13" width="1.0" active="false" key="restart" />
+				<column cid="15" pos="14" width="1.0" active="false" key="spec" />
+				<column cid="16" pos="15" width="1.0" active="false" key="state" />
+				<column cid="17" pos="16" width="1.0" active="false" key="totaltasks" />
+			</tablelayout>
+			<tablelayout id="tl_WAIT"
+				gid="org.eclipse.ptp.rm.lml.ui.InactiveJobsView" active="true"
+				contenthint="jobs">
+				<column cid="1" pos="1" width="0.1" active="true" key="step" />
+				<column cid="2" pos="0" width="0.1" active="true" key="owner" />
+				<column cid="3" pos="2" width="0.1" active="true" key="queue" />
+				<column cid="4" pos="3" width="0.1" active="true" key="wall" />
+				<column cid="5" pos="4" width="0.1" active="true" key="queuedate" />
+				<column cid="6" pos="5" width="0.1" active="true" key="dispatchdate" />
+				<column cid="7" pos="6" width="0.1" active="true" key="totalcores" />
+				<column cid="8" pos="7" width="0.3" active="true" key="status">
+					<pattern>
+						<select rel="!=" value="RUNNING" />
+					</pattern>
+				</column>
+				<column cid="9" pos="8" width="1.0" active="false" key="dependency" />
+				<column cid="10" pos="9" width="1.0" active="false" key="detailedstatus" />
+				<column cid="11" pos="10" width="1.0" active="false" key="group" />
+				<column cid="12" pos="11" width="1.0" active="false" key="name" />
+				<column cid="13" pos="12" width="1.0" active="false" key="nodelist" />
+				<column cid="14" pos="13" width="1.0" active="false" key="restart" />
+				<column cid="15" pos="14" width="1.0" active="false" key="spec" />
+				<column cid="16" pos="15" width="1.0" active="false" key="state" />
+				<column cid="17" pos="16" width="1.0" active="false" key="totaltasks" />
+				<column cid="18" pos="17" width="1.0" active="false" key="vnodelist" />
+			</tablelayout>
+			<nodedisplaylayout id="nodedisplay" gid="nd_1"
+				active="true">
+				<schemehint>
+					<el1 tagname="part" min="0" max="0" map="jj">
+						<el2 tagname="rack" min="1" max="6" mask="%02d">
+							<el3 tagname="node" min="1" max="96" mask="c%02d">
+								<el4 tagname="core" min="0" max="15" mask="-c%02d">
+								</el4>
+							</el3>
+						</el2>
+						<el2 tagname="rack" min="8" max="18" mask="%02d">
+							<el3 tagname="node" min="1" max="96" mask="c%02d">
+								<el4 tagname="core" min="0" max="15" mask="-c%02d">
+								</el4>
+							</el3>
+						</el2>
+						<el2 tagname="rack" min="20" max="25" mask="%02d">
+							<el3 tagname="node" min="1" max="96" mask="c%02d">
+								<el4 tagname="core" min="0" max="15" mask="-c%02d">
+								</el4>
+							</el3>
+						</el2>
+					</el1>
+					<el1 tagname="part" min="1" max="1" map="jf">
+						<el2 tagname="rack" min="38" max="42" mask="%02d">
+							<el3 tagname="node" min="1" max="54" mask="c%02d">
+								<el4 tagname="core" min="0" max="15" mask="-c%02d">
+								</el4>
+							</el3>
+						</el2>
+						<el2 tagname="rack" min="44" max="53" mask="%02d">
+							<el3 tagname="node" min="1" max="54" mask="c%02d">
+								<el4 tagname="core" min="0" max="15" mask="-c%02d">
+								</el4>
+							</el3>
+						</el2>
+						<el2 tagname="rack" min="55" max="59" mask="%02d">
+							<el3 tagname="node" min="1" max="54" mask="c%02d">
+								<el4 tagname="core" min="0" max="15" mask="-c%02d">
+								</el4>
+							</el3>
+						</el2>
+					</el1>
+				</schemehint>
+				<el0 vgap="5" transparent="false" showtitle="false" mouseborder="0"
+					maxlevel="3" hgap="0" fontsize="10" fontfamily="Monospaced" cols="1"
+					rows="2" border="1" background="#fff">
+					<el1 transparent="false" showtitle="true" rows="1" cols="23"
+						min="0" maxlevel="4" border="1" background="#eee" bordercolor="#eee" titlebackground="#eee">
+						<el2 vgap="0" transparent="false" showtitle="true" min="1"
+							maxlevel="4" max="25" cols="3" rows="32" background="#ddd" titlebackground="#ccc">
+							<el3 vgap="0" min="1" maxlevel="4" max="96" hgap="0" cols="8">
+							</el3>
+						</el2>
+					</el1>
+					<el1 transparent="false" showtitle="true" rows="1" cols="13"
+						min="1" maxlevel="4" border="1" background="#aaa" bordercolor="#aaa" titlebackground="#aaa">
+						<el2 vgap="0" transparent="false" showtitle="true" min="38"
+							maxlevel="4" max="59" cols="3" rows="18" background="#ddd" titlebackground="#ccc">
+							<el3 vgap="0" min="1" maxlevel="4" max="54" hgap="0" cols="8">
+							</el3>
+						</el2>
+					</el1>
+				</el0>
+			</nodedisplaylayout>
+		</rm:layout>
 	</monitor-data>
 </resource-manager-builder>
\ No newline at end of file
diff --git a/rms/org.eclipse.ptp.rm.jaxb.contrib/data/edu.utexas.tacc.lonestar.sge.batch.xml b/rms/org.eclipse.ptp.rm.jaxb.contrib/data/edu.utexas.tacc.lonestar.sge.batch.xml
index 8458db9..a95da50 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.contrib/data/edu.utexas.tacc.lonestar.sge.batch.xml
+++ b/rms/org.eclipse.ptp.rm.jaxb.contrib/data/edu.utexas.tacc.lonestar.sge.batch.xml
@@ -14,7 +14,7 @@
 	xmlns="http://eclipse.org/ptp/rm" 
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="http://eclipse.org/ptp/rm http://eclipse.org/ptp/schemas/v1.1/rm.xsd" 
-	name="edu.utexas.tacc.lonestar.sge.batch.xml">
+	name="edu.utexas.tacc.lonestar.sge.batch">
 	<control-data>
 		<!-- (Required) This attribute is required by LML.  Link it to the batch-specific variable name. -->
 		<attribute name="control.queue.name" visible="false">
@@ -35,7 +35,6 @@
 		<attribute name="bindir" visible="false"/>
 		<!-- List of queues.  Set by <start-up-command> below.  Invisible since the values are not modifiable. -->
 		<attribute name="queues" visible="false"/>
-
 		<attribute name="Output_Path" type="string"><!-- Linked to stdout_remote_path attribute above --><!-- Not in UI -->
 			<description>The final path name for the file containing the job's standard output stream.</description>
 			<tooltip><![CDATA[Format: "[hostname:]pathname". If the option
@@ -138,7 +137,6 @@
 				<error-message>format must be hh:mm:ss</error-message>
 			</validator>
 		</attribute>
-
 		<!-- ========== -->
 		<!-- JOB SCRIPT -->
 		<!-- ========== -->
@@ -208,7 +206,6 @@
 				<arg resolve="false">${COMMAND}</arg>
 			</line>
 		</script>
-		
 		<!-- ================= -->
 		<!-- START-UP COMMANDS -->
 		<!-- ================= -->
@@ -226,7 +223,6 @@
 				</target>
 			</stdout-parser>
 		</start-up-command>
-
 		<!-- ============== -->
 		<!-- JOB SUBMISSION -->
 		<!-- ============== -->
@@ -296,7 +292,6 @@
 				</target>
 			</stderr-parser>
 		</submit-batch>
-
 		<!-- ========== -->
 		<!-- JOB STATUS -->
 		<!-- ========== -->
@@ -395,7 +390,6 @@
 				</target>
 			</stderr-parser>
 		</get-job-status>
-
 		<!-- =============== -->
 		<!-- JOB TERMINATION -->
 		<!-- =============== -->
@@ -403,7 +397,6 @@
 			<arg>${ptp_rm:bindir#value}qdel</arg>
 			<arg>${ptp_rm:@jobId#name}</arg>
 		</terminate-job>
-
 		<!-- ========================= -->
 		<!-- USER INTERFACE/LAUNCH TAB -->
 		<!-- ========================= -->
@@ -651,6 +644,5 @@
 			</import>
 		</launch-tab>
 	</control-data>
-
 	<monitor-data schedulerType="GridEngine" />
 </resource-manager-builder>
\ No newline at end of file
diff --git a/rms/org.eclipse.ptp.rm.jaxb.contrib/data/edu.utexas.tacc.ranger.sge.batch.xml b/rms/org.eclipse.ptp.rm.jaxb.contrib/data/edu.utexas.tacc.ranger.sge.batch.xml
deleted file mode 100644
index 72d8f6b..0000000
--- a/rms/org.eclipse.ptp.rm.jaxb.contrib/data/edu.utexas.tacc.ranger.sge.batch.xml
+++ /dev/null
@@ -1,656 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- ******************************************************************************* -->
-<!-- * Copyright (c) 2011 University of Illinois. All rights reserved.               -->
-<!-- * This program and the accompanying materials are made available under the      -->
-<!-- * terms of the Eclipse Public License v1.0 which accompanies this distribution, -->
-<!-- * and is available at http://www.eclipse.org/legal/epl-v10.html                 -->
-<!-- *                                                                               -->
-<!-- * Contributors:                                                                 -->
-<!-- *     Al Rossi - Design and implementation                                      -->
-<!-- *     Galen Arnold - Adapted to mvapich2                                        -->
-<!-- *     Jeff Overbey - Adapted to Grid Engine                                     -->
-<!-- ******************************************************************************* -->
-<resource-manager-builder 
-	xmlns="http://eclipse.org/ptp/rm" 
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://eclipse.org/ptp/rm http://eclipse.org/ptp/schemas/v1.1/rm.xsd" 
-	name="edu.utexas.tacc.ranger.sge.batch.xml">
-	<control-data>
-		<!-- (Required) This attribute is required by LML.  Link it to the batch-specific variable name. -->
-		<attribute name="control.queue.name" visible="false">
-			<link-value-to>destination</link-value-to>
-		</attribute>
-		<!-- (Required) Used by RM internals for fetch.  Name is fixed by convention -->
-		<attribute name="stdout_remote_path" visible="false">
-			<default>${ptp_rm:directory#value}/${ptp_rm:Job_Name#value}.o${ptp_rm:@jobId#default}</default>
-			<link-value-to>Output_Path</link-value-to>
-		</attribute>
-		<!-- (Required) Useded by RM internals for fetch.  Name is fixed by convention -->
-		<attribute name="stderr_remote_path" visible="false">
-			<default>${ptp_rm:directory#value}/${ptp_rm:Job_Name#value}.e${ptp_rm:@jobId#default}</default>
-			<link-value-to>Error_Path</link-value-to>
-		</attribute>
-		<!-- This is prepended to qconf, qsub, qdel, and showq below.
-		     Set the default value of this attribute if Grid Engine is not in the user's PATH. -->
-		<attribute name="bindir" visible="false"/>
-		<!-- List of queues.  Set by <start-up-command> below.  Invisible since the values are not modifiable. -->
-		<attribute name="queues" visible="false"/>
-
-		<attribute name="Output_Path" type="string"><!-- Linked to stdout_remote_path attribute above --><!-- Not in UI -->
-			<description>The final path name for the file containing the job's standard output stream.</description>
-			<tooltip><![CDATA[Format: "[hostname:]pathname". If the option
-is not specified, the default file name for the standard error stream 
-will be used. The default name has the following form: job_name.oSeq_num
-where job_name is the name of the job, see -N option, and Seq_num
-is the job number assigned when the job is submitted; 
-default value: (job_name).o(job_number).]]></tooltip>
-		</attribute>
-		<attribute name="Error_Path" type="string"><!-- Linked to stderr_remote_path attribute above --><!-- Not in UI -->
-			<description>The final path name for the file containing the job's standard error stream.</description>
-			<tooltip><![CDATA[Format: "[hostname:]pathname". If 
-the option is not specified, the default file name for the 
-standard error stream will be used. The default name has 
-the following form: job_name.eSeq_num where job_name is 
-the name of the job, see -N option, and Seq_num
-is the job number assigned when the job is submitted; 
-default value: (job_name).e(job_number).]]></tooltip>
-		</attribute>
-		<attribute name="destination" type="string"><!-- Linked to control.queue.name attribute above -->
-			<description>Designation of the queue to which to submit the job.</description>
-			<tooltip>Format: queue[@server].</tooltip>
-			<default>normal</default>
-			<validator>
-				<regex expression="[\S]+"/>
-				<error-message>cannot be empty</error-message>
-			</validator>
-		</attribute>
-		<attribute name="mpiCommand" type="choice">
-			<description>Command used to run MPI jobs.</description>
-			<choice>,ibrun,ibrun tacc_affinity</choice>
-			<default>ibrun</default>
-		</attribute>
-		<attribute name="Account_Name" type="string">
-			<description>Account to which to charge this job.</description>
-			<tooltip>Format: string</tooltip>
-			<validator>
-				<regex expression="[\S]*"/>
-				<error-message>must not contain spaces</error-message>
-			</validator>
-		</attribute>
-		<attribute name="export_all" type="boolean" translateBooleanAs="-V, ">
-			<description><![CDATA[All variables in the qsub command's environment are to be exported to the batch job.]]></description>
-			<default>-V</default>
-		</attribute>
-		<attribute name="Job_Name" type="string">
-			<description>The name assigned to the job by the qsub or qalter command.</description>
-			<tooltip><![CDATA[Format: string up to 15 characters, 
-first character must be alphabetic; default value: 
-the base name of the job script or STDIN.]]></tooltip>
-			<default>ptp_job</default>
-			<validator>
-				<regex expression="[a-zA-Z_][0-9a-zA-Z_]*"/>
-				<error-message>must be at least one alphanumeric character</error-message>
-			</validator>
-		</attribute>
-		<attribute name="Join_Path" type="boolean" translateBooleanAs="yes,no">
-			<description>Merge stdout and stderr into stdout.</description>
-			<default>no</default>
-		</attribute>
-		<attribute name="Mail_Users" type="string">
-			<description>The set of users to whom mail may be sent when the job makes certain state changes.</description>
-			<tooltip>Format: "user@host[,user@host]"; default value: job owner only.</tooltip>
-			<validator>
-				<!--        Empty or user   [@host]     [,user    [@host]   ]  ...-->
-				<regex expression="|[^\s@,]+(@[^\s@,]+)?(,[^\s@,]+(@[^\s@,]+)?)*"/>
-				<error-message>must be a comma-separated list of user[@host]</error-message>
-			</validator>
-		</attribute>
-		<attribute name="Resource_List.mem" type="string">
-			<description>Maximum amount of memory used by all concurrent processes in the job.</description>
-			<tooltip><![CDATA[Format: Integer number of bytes,
-with an optional suffix: K (kilo), M (mega), or G (giga).
-Examples: 1048576 or 1024k or 1m]]></tooltip>
-			<validator>
-				<!-- Memory format documented in man page for sge_types(1) -->
-				<regex expression="|[\d]+[kKmMgG]?"/>
-				<error-message>must be an integer with an optional K, M, or G suffix</error-message>
-			</validator>
-		</attribute>
-		<attribute name="Resource_List.pe" type="string">
-			<description>Parallel environment to instantiate.  Ranger has 16 cores per node.
-"16way 32" gives 16 MPI tasks per node and 32 total cores (2 nodes).
-16way environments are recommended for MPI jobs.  Use "1way 16" for serial jobs.</description>
-			<tooltip><![CDATA[The range (i.e., the second number) must
-be a positive multiple of 16.)]]></tooltip>
-			<choice>1way 16,2way 16,4way 16,8way 16,16way 16,16way 32,16way 48,16way 64,16way 96,16way 128,16way 256,16way 512,16way 1024,16way 2048,16way 4096,16way 8192,16way 16384</choice>
-			<default>16way 16</default>
-			<validator>
-				<regex expression="[\d]+way[\s]+[\d]+"/>
-				<error-message>must be &quot;Nway M&quot;, where N is the number of tasks per node and M is the total number of cores (i.e., number of nodes times 16)</error-message>
-			</validator>
-		</attribute>
-		<attribute name="Resource_List.walltime" type="string">
-			<description>Maximum amount of real time during which the job can be in the running state.</description>
-			<tooltip>Format: [[hours:]minutes:]seconds[.milliseconds].</tooltip>
-			<default>00:30:00</default>
-			<validator>
-				<regex expression="\d?\d:\d?\d:\d?\d"/>
-				<error-message>format must be hh:mm:ss</error-message>
-			</validator>
-		</attribute>
-
-		<!-- ========== -->
-		<!-- JOB SCRIPT -->
-		<!-- ========== -->
-		<script insertEnvironmentAfter="35">
-			<file-staging-location>${ptp_rm:directory#value}</file-staging-location>
-			<line>
-				<arg>#!/bin/bash</arg>
-			</line>
-			<line>
-				<arg isUndefinedIfMatches="#\$ -N">#$ -N ${ptp_rm:Job_Name#value}</arg>
-			</line>
-			<line>
-				<arg isUndefinedIfMatches="#\$ -A">#$ -A ${ptp_rm:Account_Name#value}</arg>
-			</line>
-			<line>
-				<arg isUndefinedIfMatches="#\$ -q">#$ -q ${ptp_rm:destination#value}</arg>
-			</line>
-			<line>
-				<arg isUndefinedIfMatches="#\$ -pe ">#$ -pe ${ptp_rm:Resource_List.pe#value}</arg>
-			</line>
-			<line>
-				<arg isUndefinedIfMatches="#\$ -l h_data=">#$ -l h_data=${ptp_rm:Resource_List.mem#value}</arg>
-			</line>
-			<line>
-				<arg isUndefinedIfMatches="#\$ -l h_rt=">#$ -l h_rt=${ptp_rm:Resource_List.walltime#value}</arg>
-			</line>
-			<line>
-				<arg isUndefinedIfMatches="#\$ -M">#$ -M ${ptp_rm:Mail_Users#value}</arg>
-			</line>
-			<line>
-				<arg isUndefinedIfMatches="#\$ -j">#$ -j ${ptp_rm:Join_Path#value}</arg>
-			</line>
-			<line>
-				<arg isUndefinedIfMatches="#\$ -o">#$ -o ${ptp_rm:Output_Path#value}</arg>
-			</line>
-			<line>
-				<arg isUndefinedIfMatches="#\$ -e">#$ -e ${ptp_rm:Error_Path#value}</arg>
-			</line>
-			<line>
-				<arg isUndefinedIfMatches="#\$">#$ ${ptp_rm:export_all#value}</arg>
-			</line>
-			<line><arg resolve="false">cd $SCRATCH</arg></line>
-			<line><arg>cp ${ptp_rm:executablePath#value} .</arg></line>
-			<line><arg>MYSCREXE=`basename ${ptp_rm:executablePath#value}`</arg></line>
-			<line>
-				<arg>COMMAND=${ptp_rm:mpiCommand#value}</arg>
-			</line>
-			<line>
-				<arg resolve="false">if [ -n "${COMMAND}" ] ; then</arg>
-			</line>
-			<line>
-				<arg resolve="false"> COMMAND="${COMMAND}</arg>
-				<arg resolve="false"> ${MYSCREXE} </arg>
-				<arg>${ptp_rm:progArgs#value}"</arg>
-			</line>
-			<line>
-				<arg resolve="false">else</arg>
-			</line>
-			<line>
-				<arg resolve="false"> COMMAND="${MYSCREXE}</arg>
-				<arg>${ptp_rm:progArgs#value}"</arg>
-			</line>
-			<line>
-				<arg resolve="false">fi</arg>
-			</line>
-			<line>
-				<arg resolve="false">${COMMAND}</arg>
-			</line>
-		</script>
-		
-		<!-- ================= -->
-		<!-- START-UP COMMANDS -->
-		<!-- ================= -->
-		<start-up-command name="get-queues">
-			<arg>${ptp_rm:bindir#value}qconf</arg>
-			<arg>-sql</arg>
-			<stdout-parser delim="\n">
-				<target ref="queues">
-					<match>
-						<expression>([a-zA-Z0-9-_]+)</expression>
-						<add field="value">
-							<entry valueGroup="1"/>
-						</add>
-					</match>
-				</target>
-			</stdout-parser>
-		</start-up-command>
-
-		<!-- ============== -->
-		<!-- JOB SUBMISSION -->
-		<!-- ============== -->
-		<submit-batch name="submit-batch" directory="${ptp_rm:directory#value}" waitForId="true">
-			<arg>${ptp_rm:bindir#value}qsub</arg>
-			<arg>${ptp_rm:managed_file_for_script#value}</arg>
-			<stdout-parser delim="\n" all="true" save="1">
-				<target ref="@jobId">
-					<match>
-						<expression>Your job ([\d]+) .*has been submitted</expression>
-						<set field="name">
-							<entry valueGroup="1"/>
-						</set>
-						<set field="default">
-							<entry valueGroup="1"/>
-						</set>
-						<set field="value">
-							<entry value="SUBMITTED"/>
-						</set>
-					</match>
-				</target>
-				<target ref="@jobId">
-					<match>
-						<expression flags="DOTALL|UNIX_LINES">.*ERROR!.*</expression>
-						<set field="value">
-							<entry value="FAILED"/>
-						</set>
-					</match>
-					<match>
-						<expression flags="DOTALL|UNIX_LINES">qsub: Unknown option</expression>
-						<set field="value">
-							<entry value="FAILED"/>
-						</set>
-					</match>
-					<match>
-						<expression flags="DOTALL|UNIX_LINES">.*&gt; Rejecting job &lt;.*</expression>
-						<set field="value">
-							<entry value="FAILED"/>
-						</set>
-					</match>
-					<match>
-						<expression flags="DOTALL|UNIX_LINES">Unable to run job: .*</expression>
-						<set field="value">
-							<entry value="FAILED"/>
-						</set>
-					</match>
-				</target>
-			</stdout-parser>
-			<stderr-parser delim="\n">
-				<target ref="@jobId">
-					<match>
-						<expression>.*ERROR!.*</expression>
-						<throw message="Job Submit Failed"/>
-					</match>
-					<match>
-						<expression>qsub: Unknown option</expression>
-						<throw message="Job Submit Failed"/>
-					</match>
-					<match>
-						<expression>.*&gt; Rejecting job &lt;.*</expression>
-						<throw message="Job Submit Failed"/>
-					</match>
-					<match>
-						<expression>Unable to run job: .*</expression>
-						<throw message="Job Submit Failed"/>
-					</match>
-				</target>
-			</stderr-parser>
-		</submit-batch>
-
-		<!-- ========== -->
-		<!-- JOB STATUS -->
-		<!-- ========== -->
-		<get-job-status name="get-job-status" ignoreExitStatus="true">
-			<arg>${ptp_rm:bindir#value}showq</arg>
-			<arg>-u</arg>
-			<stdout-parser delim="\n">
-				<target ref="@jobId">
-					<match>
-						<!-- Example:
-						JOBID     JOBNAME    USERNAME      STATE   CORE  WCLIMIT    QUEUETIME
-						================================================================================
-						346890    myMPI      joverbey      Waiting 12     00:01:00  Tue Nov 22 10:42:19 
-						
-						WAITING JOBS WITH JOB DEPENDENCIES
-						JOBID     JOBNAME    USERNAME      STATE   CORE  WCLIMIT    QUEUETIME
-						================================================================================
-						
-						UNSCHEDULED JOBS
-						JOBID     JOBNAME    USERNAME      STATE   CORE  WCLIMIT    QUEUETIME
-						================================================================================
-						346887    myMPI      joverbey      Unsched 12     00:01:00  Tue Nov 22 10:40:26 
-						-->
-						<!--        JOBID                     JOBNAME   USERNAME  STATE           ... -->
-						<expression>${ptp_rm:@jobId#name}[\s]+[\S]+[\s]+[\S]+[\s]+([A-Za-z]+)[\s]+.+</expression>
-						<set field="value">
-							<entry valueGroup="1"/>
-						</set>
-					</match>
-					<test op="EQ">
-						<value>#value</value>
-						<value>Waiting</value>
-						<set field="value">
-							<entry value="QUEUED_ACTIVE"/>
-						</set>
-					</test>
-					<test op="EQ">
-						<value>#value</value>
-						<value>DepWait</value>
-						<set field="value">
-							<entry value="QUEUED_ACTIVE"/>
-						</set>
-					</test>
-					<test op="EQ">
-						<value>#value</value>
-						<value>Idle</value>
-						<set field="value">
-							<entry value="QUEUED_ACTIVE"/>
-						</set>
-					</test>
-					<test op="EQ">
-						<value>#value</value>
-						<value>Starting</value>
-						<set field="value">
-							<entry value="QUEUED_ACTIVE"/>
-						</set>
-					</test>
-					<test op="EQ">
-						<value>#value</value>
-						<value>Hold</value>
-						<set field="value">
-							<entry value="SYSTEM_ON_HOLD"/>
-						</set>
-					</test>
-					<test op="EQ">
-						<value>#value</value>
-						<value>Running</value>
-						<set field="value">
-							<entry value="RUNNING"/>
-						</set>
-					</test>
-					<test op="EQ">
-						<value>#value</value>
-						<value>Suspended</value>
-						<set field="value">
-							<entry value="SUSPENDED"/>
-						</set>
-					</test>
-					<test op="EQ">
-						<value>#value</value>
-						<value>Unsched</value>
-						<set field="value">
-							<entry value="COMPLETED"/>
-						</set>
-					</test>
-				</target>
-			</stdout-parser>
-			<stderr-parser delim="\n">
-				<target ref="@jobId">
-					<match>
-						<expression>.+</expression>
-						<set field="value">
-							<entry value="COMPLETED"/>
-						</set>
-					</match>
-				</target>
-			</stderr-parser>
-		</get-job-status>
-
-		<!-- =============== -->
-		<!-- JOB TERMINATION -->
-		<!-- =============== -->
-		<terminate-job name="cancel" ignoreExitStatus="true">
-			<arg>${ptp_rm:bindir#value}qdel</arg>
-			<arg>${ptp_rm:@jobId#name}</arg>
-		</terminate-job>
-
-		<!-- ========================= -->
-		<!-- USER INTERFACE/LAUNCH TAB -->
-		<!-- ========================= -->
-		<launch-tab>
-			<dynamic>
-				<title>Grid Engine Settings</title>
-				<layout>
-					<grid-layout/>
-				</layout>
-				<!-- ATTRIBUTES group -->
-				<composite group="true">
-					<layout>
-						<grid-layout numColumns="4" makeColumnsEqualWidth="false" horizontalSpacing="10" verticalSpacing="15"/>
-					</layout>
-					<!-- HEADER -->
-					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
-						</layout-data>
-						<fixed-text>Name</fixed-text>
-					</widget>
-					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" horizontalSpan="2" grabExcessHorizontal="false"/>
-						</layout-data>
-						<fixed-text>Value</fixed-text>
-					</widget>
-					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
-						</layout-data>
-						<fixed-text>Description</fixed-text>
-					</widget>
-					<!-- row 1 -->
-					<widget type="label" style="SWT.LEFT">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
-						</layout-data>
-						<tooltip>${ptp_rm:Job_Name#tooltip}</tooltip>
-						<fixed-text>Job Name: </fixed-text>
-					</widget>
-					<widget type="text" style="SWT.BORDER" attribute="Job_Name">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
-						</layout-data>
-					</widget>
-					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
-						</layout-data>
-						<fixed-text>${ptp_rm:Job_Name#description}</fixed-text>
-					</widget>
-					<!-- row 2 -->
-					<widget type="label" style="SWT.LEFT">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
-						</layout-data>
-						<tooltip>${ptp_rm:Account_Name#tooltip}</tooltip>
-						<fixed-text>Account: </fixed-text>
-					</widget>
-					<widget type="text" style="SWT.BORDER" attribute="Account_Name">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
-						</layout-data>
-					</widget>
-					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
-						</layout-data>
-						<fixed-text>${ptp_rm:Account_Name#description}</fixed-text>
-					</widget>
-					<!-- row 3 -->
-					<widget type="label" style="SWT.LEFT">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
-						</layout-data>
-						<tooltip>${ptp_rm:destination#tooltip}</tooltip>
-						<fixed-text>Queue: </fixed-text>
-					</widget>
-					<widget type="combo" style="SWT.BORDER" readOnly="true" attribute="destination">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false"/>
-						</layout-data>
-						<items-from>queues</items-from>
-					</widget>
-					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
-						</layout-data>
-						<fixed-text>${ptp_rm:destination#description}</fixed-text>
-					</widget>
-					<!-- row 4 -->
-					<widget type="label" style="SWT.LEFT">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
-						</layout-data>
-						<tooltip>${ptp_rm:Resource_List.pe#tooltip}</tooltip>
-						<fixed-text>Parallel environment: </fixed-text>
-					</widget>
-					<widget type="combo" style="SWT.BORDER" readOnly="false" attribute="Resource_List.pe">
-						<layout-data>
-							<grid-data widthHint="150" horizontalAlign="SWT.FILL" horizontalSpan="2"/>
-						</layout-data>
-					</widget>
-					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
-						</layout-data>
-						<fixed-text>${ptp_rm:Resource_List.pe#description}</fixed-text>
-					</widget>
-					<!-- row 5 -->
-					<widget type="label" style="SWT.LEFT">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
-						</layout-data>
-						<tooltip>${ptp_rm:Resource_List.mem#tooltip}</tooltip>
-						<fixed-text>Total Memory Needed: </fixed-text>
-					</widget>
-					<widget type="text" style="SWT.BORDER" attribute="Resource_List.mem">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
-						</layout-data>
-					</widget>
-					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
-						</layout-data>
-						<fixed-text>${ptp_rm:Resource_List.mem#description}</fixed-text>
-					</widget>
-					<!-- row 6 -->
-					<widget type="label" style="SWT.LEFT">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
-						</layout-data>
-						<tooltip>${ptp_rm:Resource_List.walltime#tooltip}</tooltip>
-						<fixed-text>Wallclock Time: </fixed-text>
-					</widget>
-					<widget type="text" style="SWT.BORDER" attribute="Resource_List.walltime">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
-						</layout-data>
-					</widget>
-					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
-						</layout-data>
-						<fixed-text>${ptp_rm:Resource_List.walltime#description}</fixed-text>
-					</widget>
-					<!-- row 7 -->
-					<widget type="label" style="SWT.LEFT">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
-						</layout-data>
-						<fixed-text>MPI Launch Command: </fixed-text>
-					</widget>
-					<widget type="combo" style="SWT.BORDER" readOnly="false" attribute="mpiCommand">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false"/>
-						</layout-data>
-					</widget>
-					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
-						</layout-data>
-						<fixed-text>${ptp_rm:mpiCommand#description}</fixed-text>
-					</widget>
-					<!-- row 8 -->
-					<widget type="label" style="SWT.LEFT">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
-						</layout-data>
-						<tooltip>${ptp_rm:Mail_Users#tooltip}</tooltip>
-						<fixed-text>Send E-mail To: </fixed-text>
-					</widget>
-					<widget type="text" style="SWT.BORDER" attribute="Mail_Users">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="true" widthHint="150"/>
-						</layout-data>
-					</widget>
-					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
-						</layout-data>
-						<fixed-text>${ptp_rm:Mail_Users#description}</fixed-text>
-					</widget>
-					<!-- row 9 -->
-					<widget type="label" style="SWT.LEFT">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
-						</layout-data>
-						<tooltip>${ptp_rm:Join_Path#tooltip}</tooltip>
-						<fixed-text>Combine stdout and stderr: </fixed-text>
-					</widget>
-					<widget type="checkbox" style="SWT.BORDER" attribute="Join_Path">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false"/>
-						</layout-data>
-					</widget>
-					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
-						</layout-data>
-						<fixed-text>${ptp_rm:Join_Path#description}</fixed-text>
-					</widget>
-					<!-- row 10 -->
-					<widget type="label" style="SWT.LEFT">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
-						</layout-data>
-						<tooltip>${ptp_rm:export_all#tooltip}</tooltip>
-						<fixed-text>Export Environment: </fixed-text>
-					</widget>
-					<widget type="checkbox" style="SWT.BORDER" attribute="export_all">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false"/>
-						</layout-data>
-					</widget>
-					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
-						<layout-data>
-							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
-						</layout-data>
-						<fixed-text>${ptp_rm:export_all#description}</fixed-text>
-					</widget>
-				</composite>
-			</dynamic>
-			<import title="Import Grid Engine Script">
-				<export-for-override name="exportedEnv" style="SWT.BORDER | SWT.MULTI | SWT.V_SCROLL" sort="true" type="table"
-					initialAllChecked="true" tooltipEnabled="true">
-					<layout-data>
-						<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" grabExcessHorizontal="true" heightHint="80"/>
-					</layout-data>
-					<column-data name="Name" width="175" resizable="true">
-						<tooltip>Multi-select and click checkbox to apply change to all rows.</tooltip>
-					</column-data>
-					<column-data name="Value" width="200" resizable="true">
-						<tooltip>Click to activate value widget.</tooltip>
-					</column-data>
-					<items>
-						<include>destination</include>
-						<include>Job_Name</include>
-						<include>Output_Path</include>
-						<include>Error_Path</include>
-					</items>
-				</export-for-override>
-			</import>
-		</launch-tab>
-	</control-data>
-
-	<monitor-data schedulerType="GridEngine" />
-</resource-manager-builder>
\ No newline at end of file
diff --git a/rms/org.eclipse.ptp.rm.jaxb.contrib/data/edu.utexas.tacc.stampede.slurm.batch.xml b/rms/org.eclipse.ptp.rm.jaxb.contrib/data/edu.utexas.tacc.stampede.slurm.batch.xml
new file mode 100644
index 0000000..a1db4ee
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.contrib/data/edu.utexas.tacc.stampede.slurm.batch.xml
@@ -0,0 +1,1406 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ******************************************************************************* -->
+<!-- * Copyright (c) 2013 Brian Watt All rights reserved. This program -->
+<!-- * and the accompanying materials are made available under the terms of the -->
+<!-- * Eclipse Public License v1.0 which accompanies this distribution, and is -->
+<!-- * available at http://www.eclipse.org/legal/epl-v10.html -->
+<!-- * -->
+<!-- * Contributors: -->
+<!-- * Doug James - design -->
+<!-- * Brian Watt - implementation -->
+<!-- ****************************************************************************** -->
+<resource-manager-builder 
+	xmlns="http://eclipse.org/ptp/rm" 
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://eclipse.org/ptp/rm http://eclipse.org/ptp/schemas/v1.1/rm.xsd" 
+	name="edu.utexas.tacc.stampede.slurm.batch">
+	<control-data>
+		<!-- this is a necessary attribute for the functioning of LML; link it to the batch-specific variable name -->
+		<attribute name="control.queue.name" visible="false">
+			<link-value-to>partition</link-value-to>
+		</attribute>
+		<!-- we set this to invisible because the values are not really modifiable -->
+		<attribute name="queues" visible="false"/>
+		<!-- needed by RM internals for fetch; name is fixed by convention -->
+		<attribute name="stdout_remote_path" visible="false">
+			<default>${ptp_rm:workdir#value}/slurm-${ptp_rm:@jobId#default}.out</default>
+			<link-value-to>output</link-value-to>
+		</attribute>
+		<!-- needed by RM internals for fetch; name is fixed by convention -->
+		<attribute name="stderr_remote_path" visible="false">
+			<default>${ptp_rm:workdir#value}/slurm-${ptp_rm:@jobId#default}.err</default>
+			<link-value-to>error</link-value-to>
+		</attribute>
+		<!-- ========================================================================================== -->
+		<!-- SBATCH COMMAND ARGUMENTS																	-->
+		<!-- ========================================================================================== -->
+		<attribute name="account" type="string">
+			<description>Account to charge resources used by this job. (-A, --account=&lt;account&gt;)</description>
+			<tooltip><![CDATA[The account is an arbitrary string. The account name may be changed after
+job submission using the scontrol command.]]></tooltip>
+		</attribute>
+		<attribute name="begin" type="string">
+			<description>Time to begin the allocation of the job. (--begin&lt;time&gt;)</description>
+			<tooltip><![CDATA[Submit the batch script to the SLURM controller immediately, like normal, 
+but tell the controller to defer the allocation of the job until the specified time. 
+Time may be of the form HH:MM:SS to run a job at a specific time of day 
+(seconds are optional). (If that time is already past, the next day is assumed.) 
+You may also specify midnight, noon, or teatime (4pm) and you can have a
+time-of-day suffixed with AM or PM for running in the morning or the evening.
+You can also say what day the job runs by specifying a date of the form 
+MMDDYY or MM/DD/YY or YYYY-MM-DD. Combine date and time using the 
+following format YYYY-MM-DD[HH:MM[:SS]]. 
+You can also give times like "now" + count time-units, where the time-units 
+can be seconds (default), minutes, hours, days, or weeks and you can tell 
+SLURM to run the job today with the keyword "today" and to run the job 
+tomorrow with the keyword "tomorrow". 
+The value may be changed after job submission using the scontrol command.]]></tooltip>
+		</attribute>
+		<attribute name="comment" type="string">
+			<description>Arbitrary comment. (--comment&lt;string&gt;)</description>
+			<tooltip><![CDATA[An arbitrary comment enclosed in double quotes if using spaces
+or some special characters.]]></tooltip>
+		</attribute>
+		<attribute name="dependency" type="string">
+			<description>Dependencies before job starts. (-d, --dependency=&lt;dependency_list&gt;)</description>
+			<tooltip><![CDATA[Format is of the form "type:job_id[:job_id][,type:job_id[:job_id]].
+Many jobs can share the same dependency and these jobs may even belong to different
+users. The value may be changed after job submission using the scontrol command.]]></tooltip>
+		</attribute>
+		<attribute name="error" type="string">
+			<description>Filename pattern of standard error. (-e, --error=&lt;filename_pattern&gt;)</description>
+			<tooltip><![CDATA[By default both standard output and standard error are directed to a file
+of the name "slurm-%j.out", where the "%j" is replaced with the job allocation number.
+See the "--input" option for filename specification options.
+Use absolute path or "${ptp_rm:workdir#value}" prefix to be relative to working directory.]]></tooltip>
+		</attribute>
+		<attribute name="exclude" type="string">
+			<description>Nodes to exclude. (-x, --exclude=&lt;node name list&gt;)</description>
+			<tooltip><![CDATA[Explicitly exclude certain nodes from the resources granted to the job.]]></tooltip>
+		</attribute>
+		<attribute name="hold" type="boolean" translateBooleanAs='-H, '>
+			<description>Hold the job upon submission. (priority of zero). (-H, --hold)</description>
+			<tooltip><![CDATA[A held job can now be released using scontrol to reset its priority
+(e.g. "scontrol update jobid=<id> priority=1").]]></tooltip>
+		</attribute>
+		<attribute name="immediate" type="boolean" translateBooleanAs="-I, ">
+			<description>Submit job if resources are immediately available. (-I, --immediate)</description>
+			<tooltip><![CDATA[If the job allocation has to wait in a queue of pending jobs,
+the batch script is not submitted.]]></tooltip>
+		</attribute>
+		<attribute name="input" type="string">
+			<description>Filename pattern of standard input. (-i, --input=&lt;filename_pattern&gt;)</description>
+			<tooltip><![CDATA[Instruct SLURM to connect the batch script's standard input
+directly to the file name specified in the "filename pattern".
+By default, "/dev/null" is open on the batch script's standard
+input and both standard output and standard error are directed
+to a file of the name "slurm-%j.out", where the "%j" is replaced
+with the job allocation number, as described below.
+The filename pattern may contain one or more replacement symbols,
+which are a percent sign "%" followed by a letter (e.g.
+%j). Supported replacement symbols are:
+(1) %j - Job allocation number.
+(2) %N - Node name. Only one file is created, so %N will be
+replaced by the name of the first node in the job, which
+is the one that runs the script.]]></tooltip>
+		</attribute>
+		<attribute name="job-name" type="string">
+			<description>Job name for the submission. (-J, --job-name=&lt;jobname&gt;)</description>
+			<tooltip><![CDATA[The specified name appears along with
+the job id number when querying running jobs on the system. The default
+is the name of the batch script, or just "sbatch" if the script is
+read on sbatch's standard input.]]></tooltip>
+			<default>ptp_sbatch</default>
+			<validator>
+				<regex expression="[a-zA-Z_][0-9a-zA-Z_]*"/>
+				<error-message>"job-name" field: Must be at least one alphanumeric character</error-message>
+			</validator>
+		</attribute>
+		<attribute name="mail-type" type="choice">
+			<description>Event type to notify user by email. (--mail-type=&lt;type&gt;)</description>
+			<tooltip><![CDATA[Valid type values are BEGIN, END, FAIL, REQUEUE, and ALL (any state
+change). The user to be notified is indicated with --mail-user.]]></tooltip>
+			<choice>,BEGIN,END,FAIL,REQUEUE,ALL</choice>
+			<default>ALL</default>
+		</attribute>
+		<attribute name="mail-user" type="string">
+			<description>User to receive email notification of state changes. (--mail-user=&lt;user&gt;)</description>
+			<tooltip><![CDATA[As defined by --mail-type.
+The default value is the submitting user.]]></tooltip>
+		</attribute>
+		<attribute name="modules" type="string">
+			<description>Modules that are loaded.</description>
+		</attribute>
+		<attribute name="nodefile" type="string">
+			<description>Name of the file containing nodes. (-F, --nodefile=&lt;node file&gt;)</description>
+			<tooltip><![CDATA[Much like --nodelist, but the list is contained in a file of
+name node file. The node names of the list may also span multiple
+lines in the file. Duplicate node names in the file will
+be ignored. The order of the node names in the list is not
+important; the node names will be sorted by SLURM.]]></tooltip>
+		</attribute>
+		<attribute name="nodelist" type="string">
+			<description>List of node names. (-w, --nodelist=&lt;node name list&gt;)</description>
+			<tooltip><![CDATA[Request a specific list of node names. The list may be specified
+as a comma-separated list of node names, or a range of node
+names (e.g. mynode[1-5,7,...]). Duplicate node names in the list
+will be ignored. The order of the node names in the list is not
+important; the node names will be sorted by SLURM.]]></tooltip>
+		</attribute>
+		<attribute name="nodes" type="string">
+			<description>Number of nodes to be allocated to this job. (-N, --nodes=&lt;minnodes[-maxnodes]&gt;)</description>
+			<tooltip><![CDATA[The scheduler may decide to launch the job on more than "minnodes" nodes.
+A limit on the maximum node count may be specified with "maxnodes"
+(e.g. "--nodes=2-4"). The minimum and maximum node count may be the
+same to specify a specific number of nodes (e.g. "--nodes=2-2" asks
+for two and ONLY two nodes).
+The partition's node limits supersede those of the job.
+If a job's node limits are outside of the range permitted for its
+associated partition, the job is left in a PENDING state.
+This permits possible execution at a later time, when the partition
+limit is changed.
+If a job node limit exceeds the number of nodes configured in the
+partition, the job is rejected.
+Note that the environment variable SLURM_NNODES are set to the
+count of nodes actually allocated to the job. See the ENVIRONMENT VARIABLES
+section for more information. If "-N" is not specified, the default
+behavior is to allocate enough nodes to satisfy the requirements of
+the "-n" and "-c" options.
+The job is allocated as many nodes as possible within the range specified
+and without delaying the initiation of the job.]]></tooltip>
+			<default>1</default>
+		</attribute>
+		<attribute name="ntasks" type="integer" min="1">
+			<description>Number of tasks to run. (-n, --ntasks=&lt;number&gt;)</description>
+			<tooltip><![CDATA[Allocate resources for ntasks tasks. The default
+is one task per node, but note that the --ntasks-per-node option changes this default.]]></tooltip>
+			<default>1</default>
+		</attribute>
+		<attribute name="ntasks-per-node" type="choice">
+			<description>Maximum number of tasks for each node. (--ntasks-per-node=&lt;ntasks&gt;)</description>
+			<tooltip><![CDATA[Meant to be used with the --nodes option. This is related to
+--cpus-per-task=ncpus, but does not require knowledge of the actual number of
+cpus on each node. In some cases, it is more convenient to be able to request that no 
+more than a specific number of tasks be invoked on each node. Examples of this
+include submitting a hybrid MPI/OpenMP app where only one MPI "task/rank" should
+be assigned to each node while allowing the OpenMP portion to utilize all of the
+parallelism present in the node, or submitting a single setup/cleanup/monitoring
+job to each node of a pre-existing allocation as one step in a larger job script.]]></tooltip>
+			<choice>,1,2,4,8,16,32,64</choice>
+			<default></default>
+		</attribute>
+		<attribute name="open-mode" type="choice">
+			<description>Mode to open the output and error files. (--open-mode=append|truncate)</description>
+			<tooltip><![CDATA[The default value is specified by the system configuration parameter JobFileAppend.]]></tooltip>
+			<choice>,append,truncate</choice>
+			<default></default>
+		</attribute>
+		<attribute name="output" type="string">
+			<description>The filename pattern of standard output. (-o, --output=&lt;filename_pattern&gt;)</description>
+			<tooltip><![CDATA[By default both standard output and standard error are directed to a file of
+the name "slurm-%j.out", where the "%j" is replaced with the job allocation number.
+See the --input option for filename specification options.
+Use absolute path or "${ptp_rm:workdir#value}" prefix to be relative to working directory.]]></tooltip>
+		</attribute>
+		<attribute name="partition" type="string">
+			<description>Partition for the resource allocation. (-p, --partition=&lt;partition_names&gt;)</description>
+			<tooltip><![CDATA[If not specified, the default behaviour is to allow the slurm controller to select the default
+partition as designated by the system administrator. If the job can use more
+than one partition, specify their names in a comma separate list and the one
+offering earliest initiation is used.]]></tooltip>
+            <default>development</default>
+		</attribute>
+		<attribute name="quiet" type="boolean" translateBooleanAs="-Q, ">
+			<description>Suppress informational messages. (-Q, --quiet)</description>
+			<tooltip>Errors are still displayed.</tooltip>
+		</attribute>
+		<attribute name="reservation" type="string">
+			<description>Allocate resources from the named reservation. (--reservation=&lt;name&gt;)</description>
+		</attribute>
+		<attribute name="time" type="string">
+			<description>Limit on the total run time of the job allocation. (-t, --time=&lt;time&gt;)</description>
+			<tooltip><![CDATA[If the requested time limit exceeds the partition's time limit, the job is
+left in a PENDING state (possibly indefinitely). The default time
+limit is the partition's time limit. When the time limit is reached,
+each task in each job step is sent SIGTERM followed by SIGKILL. The
+interval between signals is specified by the SLURM configuration
+parameter "KillWait". A time limit of zero requests that no time
+limit be imposed. Acceptable time formats include "minutes",
+"minutes:seconds", "hours:minutes:seconds", "days-hours",
+"days-hours:minutes" and "days-hours:minutes:seconds".]]></tooltip>
+			<default>00:05:00</default>
+		</attribute>
+		<attribute name="time-min" type="string">
+			<description>Minimum time limit on the job allocation. (--time-min=&lt;time&gt;)</description>
+			<tooltip><![CDATA[Set a minimum time limit on the job allocation. If specified, the job may
+have it's --time limit lowered to a value no lower than --time-min if
+doing so permits the job to begin execution earlier than otherwise possible.
+The job's time limit will not be changed after the job is allocated resources.
+This is performed by a backfill scheduling algorithm to allocate resources
+otherwise reserved for higher priority jobs. Acceptable time formats include
+"minutes", "minutes:seconds", "hours:minutes:seconds", "days-hours",
+"days-hours:minutes" and "days-hours:minutes:seconds".]]></tooltip>
+		</attribute>
+		<attribute name="verbose" type="boolean" translateBooleanAs="-v, ">
+			<description>Increase the verbosity of informational messages. (-v, --verbose)</description>
+			<tooltip><![CDATA[Multiple -v's further increase sbatch's verbosity. By default only
+errors are displayed.]]></tooltip>
+		</attribute>
+		<attribute name="workdir" type="string">
+			<description>Working directory of the batch script. (-D, --workdir=&lt;directory&gt;)</description>
+			<tooltip><![CDATA[Must use absolute path on scheduled system, or "${ptp_rm:directory#value}".]]></tooltip>
+			<default>${ptp_rm:directory#value}</default>
+			<link-value-to>directory</link-value-to>
+			<validator>
+				<regex expression="/.*|\$\{ptp_rm\:directory\#value\}"></regex>
+				<error-message>"workdir" field: Must use absolute path on scheduled system, or "${ptp_rm:directory#value}".</error-message>
+			</validator>
+		</attribute>
+		<!-- ========================================================================================== -->
+		<!-- SBATCH ENVIRONMENT OPTIONS																	-->
+		<!-- ========================================================================================== -->
+		<attribute name="MIC_OMP_NUM_THREADS" type="string">
+			<description>Number of MIC OpenMP threads per task. (export MIC_OMP_NUM_THREADS=&lt;n&gt;)</description>
+			<tooltip><![CDATA[Set the number of MIC OpenMP threads per task]]></tooltip>
+		</attribute>
+		<attribute name="MIC_PPN" type="string">
+			<description>Number of MPI tasks per MIC. (export MIC_PPN=&lt;n&gt;)</description>
+			<tooltip><![CDATA[Set the number of MPI tasks per MIC.]]></tooltip>
+		</attribute>
+		<attribute name="OMP_NUM_THREADS" type="string">
+			<description>Number of OpenMP threads. (export OMP_NUM_THREADS=&lt;n&gt;)</description>
+			<tooltip><![CDATA[Number of OpenMP threads.]]></tooltip>
+		</attribute>
+		<!-- ========================================================================================== -->
+		<!-- SBATCH RUN OPTIONS																			-->
+		<!-- ========================================================================================== -->
+		<attribute name="run.command" type="choice">
+			<description>Prefix command for an MPI program (e.g. "ibrun ./a.out") or blank for non-MPI program.</description>
+			<tooltip><![CDATA[The prefix command to use with this executable. Specify no
+prefix command for serial, OpenMP (host only or MIC only), or offload code.]]></tooltip>
+			<choice>,ibrun,ibrun tacc_affinity</choice>
+			<default>ibrun</default>
+		</attribute>
+		<!-- ========================================================================================== -->
+		<!-- SBATCH SCRIPT																				-->
+		<!-- ========================================================================================== -->
+		<script insertEnvironmentAfter="30" deleteAfterSubmit="true">
+			<file-staging-location>${ptp_rm:directory#value}</file-staging-location>
+			<line><arg>#!/bin/bash</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH -A'>#SBATCH -A ${ptp_rm:account#value}</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH --begin='>#SBATCH --begin=${ptp_rm:begin#value}</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH --comment=""'>#SBATCH --comment="${ptp_rm:comment#value}"</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH -d'>#SBATCH -d ${ptp_rm:dependency#value}</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH -e'>#SBATCH -e ${ptp_rm:error#value}</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH -x'>#SBATCH -x ${ptp_rm:exclude#value}</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH'>#SBATCH ${ptp_rm:hold#value}</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH'>#SBATCH ${ptp_rm:immediate#value}</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH -i'>#SBATCH -i ${ptp_rm:input#value}</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH -J'>#SBATCH -J ${ptp_rm:job-name#value}</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH --mail-type='>#SBATCH --mail-type=${ptp_rm:mail-type#value}</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH --mail-user='>#SBATCH --mail-user=${ptp_rm:mail-user#value}</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH -F'>#SBATCH -F ${ptp_rm:nodefile#value}</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH -w'>#SBATCH -w ${ptp_rm:nodelist#value}</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH -N'>#SBATCH -N ${ptp_rm:nodes#value}</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH -n'>#SBATCH -n ${ptp_rm:ntasks#value}</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH --ntasks-per-node='>#SBATCH --ntasks-per-node=${ptp_rm:ntasks-per-node#value}</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH --open-mode='>#SBATCH --open-mode=${ptp_rm:open-mode#value}</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH -o'>#SBATCH -o ${ptp_rm:output#value}</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH -p'>#SBATCH -p ${ptp_rm:partition#value}</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH'>#SBATCH ${ptp_rm:quiet#value}</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH --reservation='>#SBATCH --reservation=${ptp_rm:reservation#value}</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH -t'>#SBATCH -t ${ptp_rm:time#value}</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH --time-min='>#SBATCH --time-min=${ptp_rm:time-min#value}</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH'>#SBATCH ${ptp_rm:verbose#value}</arg></line>
+			<line><arg isUndefinedIfMatches='#SBATCH -D'>#SBATCH -D ${ptp_rm:workdir#value}</arg></line>
+			<line><arg isUndefinedIfMatches="">${ptp_rm:modules#value}</arg></line>
+			<line><arg isUndefinedIfMatches='export OMP_NUM_THREADS='>export OMP_NUM_THREADS=${ptp_rm:OMP_NUM_THREADS#value}</arg></line>
+			<line><arg isUndefinedIfMatches='export MIC_PPN='>export MIC_PPN=${ptp_rm:MIC_PPN#value}</arg></line>
+			<line><arg isUndefinedIfMatches='export MIC_OMP_NUM_THREADS='>export MIC_OMP_NUM_THREADS=${ptp_rm:MIC_OMP_NUM_THREADS#value}</arg></line>
+			<line><arg isUndefinedIfMatches='cd'>cd ${ptp_rm:workdir#value}</arg></line>
+			<line>
+				<arg>${ptp_rm:run.command#value}</arg>
+				<arg>${ptp_rm:executablePath#value}</arg>
+				<arg>${ptp_rm:progArgs#value}</arg>
+			</line>
+		</script>
+		<!-- ========================================================================================== -->
+		<!-- START-UP COMMAND																			-->
+		<!-- ========================================================================================== -->
+		<start-up-command name="get-queues">
+			<arg>scontrol</arg>
+			<arg>show</arg>
+			<arg>partition</arg>
+			<stdout-parser delim="\n">
+				<target ref="queues">
+					<match>
+						<expression>^PartitionName=([\w\d]+)</expression>
+						<add field="value">
+							<entry valueGroup="1"/>
+						</add>
+					</match>
+				</target>
+			</stdout-parser>
+		</start-up-command>
+		<!-- ========================================================================================== -->
+		<!-- SUBMIT BATCH																				-->
+		<!-- ========================================================================================== -->
+		<submit-batch name="submit-batch" directory="${ptp_rm:directory#value}" waitForId="true">
+			<arg>sbatch</arg>
+			<arg>${ptp_rm:managed_file_for_script#value}</arg>
+			<stdout-parser delim="\n">
+				<target ref="@jobId">
+					<match>
+						<expression>^Submitted batch job ([\d]+)</expression>
+						<set field="name">
+							<entry valueGroup="1"/></set>
+						<set field="default">
+							<entry valueGroup="1"/></set>
+						<set field="value">
+							<entry value="SUBMITTED"/></set>
+					</match>
+				</target>
+				<target ref="@jobId">
+					<match>
+						<expression flags="DOTALL|UNIX_LINES">.*Submission error: (.*)</expression>
+						<set field="value">
+							<entry valueGroup="1"/></set>
+						<throw message="Job Submit Failed: ${ptp_rm:@jobId#value}"/>
+					</match>
+				</target>
+			</stdout-parser>
+			<stderr-parser delim="\n">
+				<target ref="@jobId">
+					<match>
+						<expression>.+</expression>
+						<set field="value">
+							<entry value="FAILED"/></set>
+						<throw message="Job Submit Failed"/>
+					</match>
+				</target>
+			</stderr-parser>
+		</submit-batch>
+		<!-- ========================================================================================== -->
+		<!-- GET JOB STATUS																				-->
+		<!-- ========================================================================================== -->
+		<get-job-status name="get-job-status" ignoreExitStatus="true">
+			<arg>scontrol</arg>
+			<arg>show</arg>
+			<arg>job</arg><arg>${ptp_rm:@jobId#name}</arg>
+			<stdout-parser delim="\n">
+				<target ref="@jobId">
+					<match>
+						<expression>^[\s]*JobState=([\w]+)[\s]+Reason=([\w]+)[\s]+.*</expression>
+						<set field="value">
+							<entry valueGroup="1"/>
+						</set>
+						<set field="default">
+							<entry valueGroup="2"/></set>
+					</match>
+					<test op="OR">
+						<test op="AND">
+						<test op="EQ">
+							<value>#value</value>
+							<value>PENDING</value>
+						</test>
+						<test op="EQ">
+							<value>#default</value>
+							<value>JobHeldUser</value>
+						</test>
+						<set field="value">
+							<entry value="USER_ON_HOLD" />
+						</set>
+						</test>
+						<test op="AND">
+						<test op="EQ">
+							<value>#value</value>
+							<value>PENDING</value>
+						</test>
+						<test op="EQ">
+							<value>#default</value>
+							<value>JobHeldAdmin</value>
+						</test>
+						<set field="value">
+							<entry value="SYSTEM_ON_HOLD" />
+						</set>
+						</test>
+						<test op="AND">
+						<test op="EQ">
+							<value>#value</value>
+							<value>PENDING</value>
+						</test>
+						<test op="EQ">
+							<value>#default</value>
+							<value>PartitionDown</value>
+						</test>
+						<set field="value">
+							<entry value="SYSTEM_SUSPENDED" />
+						</set>
+						</test>
+						<test op="AND">
+						<test op="EQ">
+							<value>#value</value>
+							<value>PENDING</value>
+						</test>
+						<test op="EQ">
+							<value>#default</value>
+							<value>PartitionInactive</value>
+						</test>
+						<set field="value">
+							<entry value="SYSTEM_ON_HOLD" />
+						</set>
+						</test>
+						<test op="AND">
+						<test op="EQ">
+							<value>#value</value>
+							<value>PENDING</value>
+						</test>
+						<test op="EQ">
+							<value>#default</value>
+							<value>NodeDown</value>
+						</test>
+						<set field="value">
+							<entry value="SYSTEM_SUSPENDED" />
+						</set>
+						</test>
+						<test op="AND">
+						<test op="EQ">
+							<value>#value</value>
+							<value>PENDING</value>
+						</test>
+						<test op="EQ">
+							<value>#default</value>
+							<value>SystemFailure</value>
+						</test>
+						<set field="value">
+							<entry value="SYSTEM_SUSPENDED" />
+						</set>
+						</test>
+					</test>
+					<test op="EQ">
+						<value>#value</value>
+						<value>PENDING</value>
+						<set field="value">
+							<entry value="QUEUED_ACTIVE"/></set></test>
+					<test op="EQ">
+						<value>#value</value>
+						<value>CONFIGURING</value>
+						<set field="value">
+							<entry value="SUBMITTED"/></set></test>
+					<test op="EQ">
+						<value>#value</value>
+						<value>RUNNING</value>
+						<set field="value">
+							<entry value="RUNNING"/>
+						</set>
+					</test>
+					<test op="EQ">
+						<value>#value</value>
+						<value>SUSPENDED</value>
+						<set field="value">
+							<entry value="SUSPENDED"/>
+						</set>
+					</test>
+					<test op="EQ">
+						<value>#value</value>
+						<value>COMPLETED</value>
+						<set field="value">
+							<entry value="COMPLETED"/>
+						</set>
+					</test>
+					<test op="EQ">
+						<value>#value</value>
+						<value>COMPLETING</value>
+						<set field="value">
+							<entry value="COMPLETED"/>
+						</set>
+					</test>
+					<test op="EQ">
+						<value>#value</value>
+						<value>CANCELLED</value>
+						<set field="value">
+							<entry value="CANCELED"/>
+						</set>
+					</test>
+					<test op="EQ">
+						<value>#value</value>
+						<value>FAILED</value>
+						<set field="value">
+							<entry value="FAILED"/></set></test>
+					<test op="EQ">
+						<value>#value</value>
+						<value>NODE_FAIL</value>
+						<set field="value">
+							<entry value="FAILED"/></set></test>
+					<test op="EQ">
+						<value>#value</value>
+						<value>TIMEOUT</value>
+						<set field="value">
+							<entry value="FAILED"/></set></test>
+				</target>
+			</stdout-parser>
+			<stderr-parser delim="\n">
+				<target ref="@jobId">
+					<match>
+						<expression>.+</expression>
+						<set field="value">
+							<entry value="COMPLETED"/>
+						</set>
+					</match>
+				</target>
+			</stderr-parser>
+		</get-job-status>
+		<!-- ========================================================================================== -->
+		<!-- TERMINATE JOB																				-->
+		<!-- ========================================================================================== -->
+		<terminate-job name="cancel" ignoreExitStatus="true">
+			<arg>scancel</arg>
+			<arg>${ptp_rm:@jobId#name}</arg>
+		</terminate-job>
+		<!-- ========================================================================================== -->
+		<!-- HOLD JOB																					-->
+		<!-- ========================================================================================== -->
+		<hold-job name="hold" ignoreExitStatus="true">
+			<arg>scontrol</arg><arg>hold</arg>
+			<arg>${ptp_rm:@jobId#name}</arg>
+		</hold-job>
+		<!-- ========================================================================================== -->
+		<!-- RELEASE JOB																				-->
+		<!-- ========================================================================================== -->
+		<release-job name="release" ignoreExitStatus="true">
+			<arg>scontrol</arg>
+			<arg>release</arg>
+			<arg>${ptp_rm:@jobId#name}</arg>
+		</release-job>
+		<!-- ========================================================================================== -->
+		<!-- LAUNCH TAB																	-->
+		<!-- ========================================================================================== -->
+		<launch-tab>
+			<dynamic includeWidgetValuesFrom="Supplemental Settings,Environment Settings">
+				<title>Basic Settings</title>
+				<layout>
+					<grid-layout/>
+				</layout>
+				<!-- ATTRIBUTES group -->
+				<composite group="true">
+					<layout>
+						<grid-layout numColumns="4" makeColumnsEqualWidth="false" horizontalSpacing="10" verticalSpacing="15"/>
+					</layout>
+					<!-- HEADER ======================================================================== -->
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<fixed-text>Name</fixed-text>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" horizontalSpan="2" grabExcessHorizontal="false"/>
+						</layout-data>
+						<fixed-text>Value</fixed-text>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<fixed-text>Description</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:run.command#tooltip}</tooltip>
+						<fixed-text>MPI Command: </fixed-text>
+					</widget>
+					<widget type="combo" style="SWT.BORDER" readOnly="true" attribute="run.command">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:run.command#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:run.command#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:run.command#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:job-name#tooltip}</tooltip>
+						<fixed-text>Job Name: </fixed-text>
+					</widget>
+					<widget type="text" style="SWT.BORDER" attribute="job-name">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+						</layout-data>
+						<tooltip>${ptp_rm:job-name#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:job-name#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:job-name#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:output#tooltip}</tooltip>
+						<fixed-text>Output File: </fixed-text>
+					</widget>
+					<widget type="text" style="SWT.BORDER" attribute="output">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+						</layout-data>
+						<tooltip>${ptp_rm:output#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:output#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:output#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:error#tooltip}</tooltip>
+						<fixed-text>Error File: </fixed-text>
+					</widget>
+					<widget type="text" style="SWT.BORDER" attribute="error">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+						</layout-data>
+						<tooltip>${ptp_rm:error#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:error#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:error#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:partition#tooltip}</tooltip>
+						<fixed-text>Queue: </fixed-text>
+					</widget>
+					<widget type="combo" style="SWT.BORDER" readOnly="true" attribute="partition">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:partition#tooltip}</tooltip>
+						<items-from>queues</items-from>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:partition#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:partition#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:nodes#tooltip}</tooltip>
+						<fixed-text>Number of Nodes: </fixed-text>
+					</widget>
+					<widget type="text" style="SWT.BORDER" attribute="nodes">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+						</layout-data>
+						<tooltip>${ptp_rm:nodes#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:nodes#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:nodes#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:ntasks#tooltip}</tooltip>
+						<fixed-text>Number of Tasks:</fixed-text>
+					</widget>
+					<widget type="text" style="SWT.BORDER" attribute="ntasks">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+						</layout-data>
+						<tooltip>${ptp_rm:ntasks#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:ntasks#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:ntasks#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:time#tooltip}</tooltip>
+						<fixed-text>Wallclock Time: </fixed-text>
+					</widget>
+					<widget type="text" style="SWT.BORDER" attribute="time">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+						</layout-data>
+						<tooltip>${ptp_rm:time#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:time#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:time#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:account#tooltip}</tooltip>
+						<fixed-text>Account: </fixed-text>
+					</widget>
+					<widget type="text" style="SWT.BORDER" attribute="account">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+						</layout-data>
+						<tooltip>${ptp_rm:account#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:account#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:account#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:mail-user#tooltip}</tooltip>
+						<fixed-text>Mail User: </fixed-text>
+					</widget>
+					<widget type="text" style="SWT.BORDER" attribute="mail-user">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+						</layout-data>
+						<tooltip>${ptp_rm:mail-user#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:mail-user#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:mail-user#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:mail-type#tooltip}</tooltip>
+						<fixed-text>Mail Type: </fixed-text>
+					</widget>
+					<widget type="combo" style="SWT.BORDER" readOnly="true" attribute="mail-type">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:mail-type#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:mail-type#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:mail-type#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+				</composite>
+			</dynamic>
+			<dynamic includeWidgetValuesFrom="Basic Settings,Environment Settings">
+				<title>Supplemental Settings</title>
+				<layout>
+					<grid-layout/>
+				</layout>
+				<!-- ATTRIBUTES group -->
+				<composite group="true">
+					<layout>
+						<grid-layout numColumns="4" makeColumnsEqualWidth="false" horizontalSpacing="10" verticalSpacing="15"/>
+					</layout>
+					<!-- HEADER ======================================================================== -->
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<fixed-text>Name</fixed-text>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" horizontalSpan="2" grabExcessHorizontal="false"/>
+						</layout-data>
+						<fixed-text>Value</fixed-text>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<fixed-text>Description</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:begin#tooltip}</tooltip>
+						<fixed-text>Begin: </fixed-text>
+					</widget>
+					<widget type="text" style="SWT.BORDER" attribute="begin">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+						</layout-data>
+						<tooltip>${ptp_rm:begin#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:begin#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:begin#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:comment#tooltip}</tooltip>
+						<fixed-text>Comment: </fixed-text>
+					</widget>
+					<widget type="text" style="SWT.BORDER" attribute="comment">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+						</layout-data>
+						<tooltip>${ptp_rm:comment#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:comment#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:comment#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:dependency#tooltip}</tooltip>
+						<fixed-text>Dependency: </fixed-text>
+					</widget>
+					<widget type="text" style="SWT.BORDER" attribute="dependency">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+						</layout-data>
+						<tooltip>${ptp_rm:dependency#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:dependency#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:dependency#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:exclude#tooltip}</tooltip>
+						<fixed-text>Exclude Node List: </fixed-text>
+					</widget>
+					<widget type="text" style="SWT.BORDER" attribute="exclude">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+						</layout-data>
+						<tooltip>${ptp_rm:exclude#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:exclude#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:exclude#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:hold#tooltip}</tooltip>
+						<fixed-text>Hold: </fixed-text>
+					</widget>
+					<widget type="checkbox" style="SWT.LEFT" attribute="hold">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+						</layout-data>
+						<tooltip>${ptp_rm:hold#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:hold#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:hold#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:immediate#tooltip}</tooltip>
+						<fixed-text>Immediate: </fixed-text>
+					</widget>
+					<widget type="checkbox" style="SWT.LEFT" attribute="immediate">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+						</layout-data>
+						<tooltip>${ptp_rm:immediate#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:immediate#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:immediate#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:input#tooltip}</tooltip>
+						<fixed-text>Input: </fixed-text>
+					</widget>
+					<widget type="text" style="SWT.BORDER" attribute="input">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+						</layout-data>
+						<tooltip>${ptp_rm:input#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:input#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:input#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:nodefile#tooltip}</tooltip>
+						<fixed-text>Node File: </fixed-text>
+					</widget>
+					<widget type="text" style="SWT.BORDER" attribute="nodefile">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+						</layout-data>
+						<tooltip>${ptp_rm:nodefile#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:nodefile#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:nodefile#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:nodelist#tooltip}</tooltip>
+						<fixed-text>Node Name List: </fixed-text>
+					</widget>
+					<widget type="text" style="SWT.BORDER" attribute="nodelist">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+						</layout-data>
+						<tooltip>${ptp_rm:nodelist#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:nodelist#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:nodelist#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:ntasks-per-node#tooltip}</tooltip>
+						<fixed-text>MPI Ranks per Node:</fixed-text>
+					</widget>
+					<widget type="combo" style="SWT.BORDER" attribute="ntasks-per-node" readOnly="true">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" />
+						</layout-data>
+						<tooltip>${ptp_rm:ntasks-per-node#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:ntasks-per-node#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:ntasks-per-node#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:open-mode#tooltip}</tooltip>
+						<fixed-text>Open Mode: </fixed-text>
+					</widget>
+					<widget type="combo" style="SWT.BORDER" readOnly="true" attribute="open-mode">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:open-mode#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:open-mode#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:open-mode#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:quiet#tooltip}</tooltip>
+						<fixed-text>Quiet: </fixed-text>
+					</widget>
+					<widget type="checkbox" style="SWT.LEFT" attribute="quiet">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+						</layout-data>
+						<tooltip>${ptp_rm:quiet#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:quiet#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:quiet#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:reservation#tooltip}</tooltip>
+						<fixed-text>Reservation: </fixed-text>
+					</widget>
+					<widget type="text" style="SWT.BORDER" attribute="reservation">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+						</layout-data>
+						<tooltip>${ptp_rm:reservation#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:reservation#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:reservation#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:time-min#tooltip}</tooltip>
+						<fixed-text>Time Mininum: </fixed-text>
+					</widget>
+					<widget type="text" style="SWT.BORDER" attribute="time-min">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+						</layout-data>
+						<tooltip>${ptp_rm:time-min#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:time-min#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:time-min#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:verbose#tooltip}</tooltip>
+						<fixed-text>Verbose: </fixed-text>
+					</widget>
+					<widget type="checkbox" style="SWT.LEFT" attribute="verbose">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+						</layout-data>
+						<tooltip>${ptp_rm:verbose#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:verbose#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:verbose#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:workdir#tooltip}</tooltip>
+						<fixed-text>Working Directory: </fixed-text>
+					</widget>
+					<browse title="Browse" textStyle="SWT.BORDER" attribute="workdir" readOnly="true" directory="true">
+						<text-layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="1" grabExcessHorizontal="true" widthHint="150" />
+						</text-layout-data>
+						<button-layout-data>
+							<grid-data horizontalAlign="SWT.FILL" horizontalSpan="1" grabExcessHorizontal="false" widthHint="50"/>
+						</button-layout-data>
+						<tooltip>Clear text box if "Browse" button does not work. ${ptp_rm:workdir#tooltip}</tooltip>
+					</browse>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:workdir#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:workdir#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+				</composite>
+			</dynamic>
+			<dynamic includeWidgetValuesFrom="Basic Settings,Supplemental Settings">
+				<title>Environment Settings</title>
+				<layout>
+					<grid-layout />
+				</layout>
+				<composite group="true">
+					<layout>
+						<grid-layout numColumns="4" makeColumnsEqualWidth="false" horizontalSpacing="10" verticalSpacing="15"/>
+					</layout>
+					<!-- HEADER ======================================================================== -->
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<fixed-text>Name</fixed-text>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" horizontalSpan="2" grabExcessHorizontal="false"/>
+						</layout-data>
+						<fixed-text>Value</fixed-text>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<fixed-text>Description</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:modules#tooltip}</tooltip>
+						<fixed-text>Modules to Load: </fixed-text>
+					</widget>
+					<widget type="custom" typeId="envconfig" style="SWT.NONE" attribute="modules">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" horizontalSpan="2" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:modules#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" verticalAlign="SWT.CENTER" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:modules#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:modules#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:OMP_NUM_THREADS#tooltip}</tooltip>
+						<fixed-text>OMP_NUM_THREADS:</fixed-text>
+					</widget>
+					<widget type="text" style="SWT.BORDER" attribute="OMP_NUM_THREADS">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+						</layout-data>
+						<tooltip>${ptp_rm:OMP_NUM_THREADS#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:OMP_NUM_THREADS#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:OMP_NUM_THREADS#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:MIC_PPN#tooltip}</tooltip>
+						<fixed-text>MIC_PPN:</fixed-text>
+					</widget>
+					<widget type="text" style="SWT.BORDER" attribute="MIC_PPN">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+						</layout-data>
+						<tooltip>${ptp_rm:MIC_PPN#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:MIC_PPN#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:MIC_PPN#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+					<widget type="label" style="SWT.LEFT">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:MIC_OMP_NUM_THREADS#tooltip}</tooltip>
+						<fixed-text>MIC_OMP_NUM_THREADS:</fixed-text>
+					</widget>
+					<widget type="text" style="SWT.BORDER" attribute="MIC_OMP_NUM_THREADS">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/>
+						</layout-data>
+						<tooltip>${ptp_rm:MIC_OMP_NUM_THREADS#tooltip}</tooltip>
+					</widget>
+					<widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE">
+						<layout-data>
+							<grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/>
+						</layout-data>
+						<tooltip>${ptp_rm:MIC_OMP_NUM_THREADS#tooltip}</tooltip>
+						<fixed-text>${ptp_rm:MIC_OMP_NUM_THREADS#description}</fixed-text>
+					</widget>
+					<!-- ROW =========================================================================== -->
+				</composite>
+			</dynamic>
+			<dynamic>
+				<title>Advanced Settings</title>
+				<layout>
+					<grid-layout />
+				</layout>
+				<composite group="true">
+					<layout>
+						<grid-layout numColumns="1" />
+					</layout>
+					<viewer name="allAttributes" style="SWT.BORDER" sort="true" initialAllChecked="true" type="table">
+						<layout-data>
+							<grid-data widthHint="750" horizontalSpan="1"/>
+						</layout-data>
+						<!-- These are the 6 attribute fields mappable to columns. In a "table 
+							viewer" the order of the columns is entirely arbitrary -->
+						<column-data name="Name" width="150" />
+						<column-data name="Value" width="150" />
+						<column-data name="Description" width="450" />
+						<items>
+							<include>account</include>
+							<include>begin</include>
+							<include>comment</include>
+							<include>dependency</include>
+							<include>error</include>
+							<include>exclude</include>
+							<include>hold</include>
+							<include>immediate</include>
+							<include>input</include>
+							<include>job-name</include>
+							<include>mail-type</include>
+							<include>mail-user</include>
+							<include>MIC_OMP_NUM_THREADS</include>
+							<include>MIC_PPN</include>
+							<include>nodefile</include>
+							<include>nodelist</include>
+							<include>nodes</include>
+							<include>ntasks</include>
+							<include>ntasks-per-node</include>
+							<include>OMP_NUM_THREADS</include>
+							<include>open-mode</include>
+							<include>output</include>
+							<include>partition</include>
+							<include>quiet</include>
+							<include>reservation</include>
+							<include>time</include>
+							<include>time-min</include>
+							<include>verbose</include>
+							<include>workdir</include>
+						</items>
+					</viewer>
+				</composite>
+			</dynamic>
+			<import title="Import SLURM Script">
+				<!-- export-for-override name="exportedEnv" style="SWT.BORDER | SWT.MULTI | SWT.V_SCROLL" sort="true" type="table"
+					initialAllChecked="true" tooltipEnabled="true">
+					<layout-data>
+						<grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" grabExcessHorizontal="true" heightHint="80"/>
+					</layout-data>
+					<column-data name="Name" width="175" resizable="true">
+						<tooltip>Multi-select and click checkbox to apply change to all rows.</tooltip>
+					</column-data>
+					<column-data name="Value" width="200" resizable="true">
+						<tooltip>Click to activate value widget.</tooltip>
+					</column-data>
+					<items>
+						<include>partition</include>
+						<include>job-name</include>
+						<include>output</include>
+						<include>error</include>
+						<include>workdir</include>
+					</items>
+				</export-for-override> -->
+			</import>
+		</launch-tab>
+	</control-data>
+	<monitor-data schedulerType="SLURM">
+	</monitor-data>
+</resource-manager-builder>
diff --git a/rms/org.eclipse.ptp.rm.jaxb.contrib/plugin.xml b/rms/org.eclipse.ptp.rm.jaxb.contrib/plugin.xml
index ade43e0..7727c67 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.contrib/plugin.xml
+++ b/rms/org.eclipse.ptp.rm.jaxb.contrib/plugin.xml
@@ -28,9 +28,9 @@
             name="edu.utexas.tacc.lonestar.sge.batch">
       </JAXBResourceManagerConfiguration>
       <JAXBResourceManagerConfiguration
-            configurationFile="data/edu.utexas.tacc.ranger.sge.batch.xml"
-            name="edu.utexas.tacc.ranger.sge.batch">
-      </JAXBResourceManagerConfiguration>      
+            configurationFile="data/edu.utexas.tacc.stampede.slurm.batch.xml"
+            name="edu.utexas.tacc.stampede.slurm.batch">
+      </JAXBResourceManagerConfiguration>
       <JAXBResourceManagerConfiguration
             configurationFile="data/gov.anl.alcf.bgp.pbs.batch.xml"
         name="gov.anl.alcf.bgp.pbs.batch">
@@ -52,5 +52,4 @@
             name="de.fz-juelich.juqueen.ll_bg">
       </JAXBResourceManagerConfiguration>
    </extension>
-
 </plugin>
diff --git a/rms/org.eclipse.ptp.rm.jaxb.contrib/pom.xml b/rms/org.eclipse.ptp.rm.jaxb.contrib/pom.xml
index 7081d7b..48e4fd2 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.contrib/pom.xml
+++ b/rms/org.eclipse.ptp.rm.jaxb.contrib/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.core/META-INF/MANIFEST.MF b/rms/org.eclipse.ptp.rm.jaxb.control.core/META-INF/MANIFEST.MF
index 5ced837..37f6e92 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.control.core/META-INF/MANIFEST.MF
+++ b/rms/org.eclipse.ptp.rm.jaxb.control.core/META-INF/MANIFEST.MF
@@ -7,7 +7,7 @@
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.ptp.rm.jaxb.core,
  org.eclipse.debug.core,
- org.eclipse.ptp.remote.core,
+ org.eclipse.remote.core,
  org.eclipse.ptp.remote.server.core,
  org.eclipse.ptp.core,
  org.eclipse.core.variables,
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.core/pom.xml b/rms/org.eclipse.ptp.rm.jaxb.control.core/pom.xml
index 96cc790..c2855cbd 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.control.core/pom.xml
+++ b/rms/org.eclipse.ptp.rm.jaxb.control.core/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/ICommandJob.java b/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/ICommandJob.java
index ec1a08c..52bccd2 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/ICommandJob.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/ICommandJob.java
@@ -10,7 +10,7 @@
 package org.eclipse.ptp.internal.rm.jaxb.control.core;
 
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.ptp.remote.core.IRemoteProcess;
+import org.eclipse.remote.core.IRemoteProcess;
 
 /**
  * Abstraction of methods common among types of CommandJobs.
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/ICommandJobStatus.java b/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/ICommandJobStatus.java
index f42847b..f2a8778 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/ICommandJobStatus.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/ICommandJobStatus.java
@@ -12,7 +12,7 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.ptp.core.jobs.IPJobStatus;
-import org.eclipse.ptp.remote.core.IRemoteProcess;
+import org.eclipse.remote.core.IRemoteProcess;
 
 /**
  * CommandJob-specific extension to IJobStatus.
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/LaunchController.java b/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/LaunchController.java
index c1ef09d..7e63e7f 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/LaunchController.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/LaunchController.java
@@ -46,11 +46,6 @@
 import org.eclipse.ptp.internal.rm.jaxb.control.core.utils.JobIdPinTable;
 import org.eclipse.ptp.internal.rm.jaxb.control.core.variables.RMVariableMap;
 import org.eclipse.ptp.internal.rm.jaxb.core.JAXBInitializationUtils;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionChangeEvent;
-import org.eclipse.ptp.remote.core.IRemoteConnectionChangeListener;
-import org.eclipse.ptp.remote.core.IRemotePreferenceConstants;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
 import org.eclipse.ptp.remote.server.core.RemoteServerManager;
 import org.eclipse.ptp.rm.jaxb.control.core.ILaunchController;
 import org.eclipse.ptp.rm.jaxb.control.core.LaunchControllerManager;
@@ -63,6 +58,10 @@
 import org.eclipse.ptp.rm.jaxb.core.data.ScriptType;
 import org.eclipse.ptp.rm.jaxb.core.data.SiteType;
 import org.eclipse.ptp.rm.lml.da.server.core.LMLDAServer;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnectionChangeEvent;
+import org.eclipse.remote.core.IRemoteConnectionChangeListener;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
 import org.eclipse.ui.progress.IProgressConstants;
 
 /**
@@ -94,8 +93,8 @@
 		/*
 		 * (non-Javadoc)
 		 * 
-		 * @see org.eclipse.ptp.remote.core.IRemoteConnectionChangeListener# connectionChanged
-		 * (org.eclipse.ptp.remote.core.IRemoteConnectionChangeEvent)
+		 * @see org.eclipse.remote.core.IRemoteConnectionChangeListener# connectionChanged
+		 * (org.eclipse.remote.core.IRemoteConnectionChangeEvent)
 		 */
 		public void connectionChanged(IRemoteConnectionChangeEvent event) {
 			if (event.getType() == IRemoteConnectionChangeEvent.CONNECTION_ABORTED
@@ -571,7 +570,7 @@
 			if (site != null) {
 				servicesId = site.getRemoteServices();
 				if (servicesId == null) {
-					servicesId = IRemotePreferenceConstants.REMOTE_TOOLS_REMOTE_SERVICES_ID;
+					servicesId = "org.eclipse.remote.JSch"; //$NON-NLS-1$
 				}
 				connectionName = site.getConnectionName();
 			}
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/RemoteServicesDelegate.java b/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/RemoteServicesDelegate.java
index 50744b5..33d9229 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/RemoteServicesDelegate.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/RemoteServicesDelegate.java
@@ -27,11 +27,11 @@
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.SubMonitor;
 import org.eclipse.ptp.internal.rm.jaxb.control.core.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnectionManager;
+import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.RemoteServices;
 
 /**
  * A wrapper for holding initialized remote services information. <br>
@@ -369,7 +369,7 @@
 					localConnection = localConnectionManager.getConnection(IRemoteConnectionManager.LOCAL_CONNECTION_NAME);
 				}
 				if (localConnection != null) {
-					localFileManager = localServices.getFileManager(localConnection);
+					localFileManager = localConnection.getFileManager();
 				}
 			}
 
@@ -380,7 +380,7 @@
 					if (remoteConnectionManager != null) {
 						remoteConnection = remoteConnectionManager.getConnection(remoteConnectionName);
 						if (remoteConnection != null) {
-							remoteFileManager = remoteServices.getFileManager(remoteConnection);
+							remoteFileManager = remoteConnection.getFileManager();
 						}
 					}
 				}
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/runnable/ManagedFilesJob.java b/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/runnable/ManagedFilesJob.java
index fcb5da5..5a031e4 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/runnable/ManagedFilesJob.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/runnable/ManagedFilesJob.java
@@ -30,13 +30,13 @@
 import org.eclipse.ptp.internal.rm.jaxb.control.core.RemoteServicesDelegate;
 import org.eclipse.ptp.internal.rm.jaxb.control.core.data.LineImpl;
 import org.eclipse.ptp.internal.rm.jaxb.control.core.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
 import org.eclipse.ptp.rm.jaxb.control.core.ILaunchController;
 import org.eclipse.ptp.rm.jaxb.core.IVariableMap;
 import org.eclipse.ptp.rm.jaxb.core.data.AttributeType;
 import org.eclipse.ptp.rm.jaxb.core.data.LineType;
 import org.eclipse.ptp.rm.jaxb.core.data.ManagedFileType;
 import org.eclipse.ptp.rm.jaxb.core.data.ManagedFilesType;
+import org.eclipse.remote.core.IRemoteConnection;
 
 /**
  * A managed file is a client-side file which needs to be moved to the resource to which the job will be submitted. This class wraps
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/runnable/command/CommandJob.java b/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/runnable/command/CommandJob.java
index 431b4c0..264f174 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/runnable/command/CommandJob.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/runnable/command/CommandJob.java
@@ -53,9 +53,6 @@
 import org.eclipse.ptp.internal.rm.jaxb.control.core.utils.DebuggingLogger;
 import org.eclipse.ptp.internal.rm.jaxb.control.core.utils.EnvironmentVariableUtils;
 import org.eclipse.ptp.internal.rm.jaxb.core.JAXBCoreConstants;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteProcess;
-import org.eclipse.ptp.remote.core.IRemoteProcessBuilder;
 import org.eclipse.ptp.rm.jaxb.control.core.ILaunchController;
 import org.eclipse.ptp.rm.jaxb.core.IVariableMap;
 import org.eclipse.ptp.rm.jaxb.core.data.ArgType;
@@ -64,6 +61,9 @@
 import org.eclipse.ptp.rm.jaxb.core.data.EnvironmentType;
 import org.eclipse.ptp.rm.jaxb.core.data.SimpleCommandType;
 import org.eclipse.ptp.rm.jaxb.core.data.TokenizerType;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteProcess;
+import org.eclipse.remote.core.IRemoteProcessBuilder;
 import org.eclipse.ui.progress.IProgressConstants;
 
 /**
@@ -275,11 +275,13 @@
 			if (uuid != null) {
 				if (!command.isWaitForId()) {
 					try {
-						exit = process.exitValue();
-					} catch (Throwable t) {
+						// Must call waitFor() here to correctly obtain exit status. Calling exitValue() can result in a -1 value
+						// being returned if the job has not completed.
+						exit = process.waitFor();
+					} catch (InterruptedException ignored) {
 						// Ignore
 					}
-					if ((exit != 0 /* || error.length() > 0 */)) {
+					if (exit != 0) {
 						return processError(builder.command().get(0), exit, null);
 					}
 					return Status.OK_STATUS;
@@ -554,7 +556,7 @@
 		if (DebuggingLogger.getLogger().getCommand()) {
 			System.out.println(getName() + ": " + cmdArgs.getCommandLine(false)); //$NON-NLS-1$
 		}
-		IRemoteProcessBuilder builder = delegate.getRemoteServices().getProcessBuilder(conn, cmdArgs.getTokenList());
+		IRemoteProcessBuilder builder = conn.getProcessBuilder(cmdArgs.getTokenList());
 		String directory = command.getDirectory();
 		if (directory != null && !JAXBControlConstants.ZEROSTR.equals(directory)) {
 			directory = rmVarMap.getString(uuid, directory);
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/runnable/command/CommandJobStatus.java b/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/runnable/command/CommandJobStatus.java
index 35bbf39..738378f 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/runnable/command/CommandJobStatus.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/runnable/command/CommandJobStatus.java
@@ -37,10 +37,10 @@
 import org.eclipse.ptp.internal.rm.jaxb.control.core.messages.Messages;
 import org.eclipse.ptp.internal.rm.jaxb.control.core.runnable.JobStatusMap;
 import org.eclipse.ptp.internal.rm.jaxb.core.JAXBCoreConstants;
-import org.eclipse.ptp.remote.core.IRemoteProcess;
 import org.eclipse.ptp.rm.jaxb.control.core.ILaunchController;
 import org.eclipse.ptp.rm.jaxb.core.IVariableMap;
 import org.eclipse.ptp.rm.jaxb.core.data.AttributeType;
+import org.eclipse.remote.core.IRemoteProcess;
 
 /**
  * Extension of the IJobStatus class to handle resource manager command jobs. Also handles availability notification for remote
@@ -663,7 +663,7 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.ptp.internal.rm.jaxb.control.core.ICommandJobStatus#setProcess(org.eclipse.ptp.remote.core.IRemoteProcess)
+	 * @see org.eclipse.ptp.internal.rm.jaxb.control.core.ICommandJobStatus#setProcess(org.eclipse.remote.core.IRemoteProcess)
 	 */
 	public void setProcess(IRemoteProcess process) {
 		this.process = process;
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/runnable/command/SimpleCommandJob.java b/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/runnable/command/SimpleCommandJob.java
index b93477f..22c5e59 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/runnable/command/SimpleCommandJob.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/runnable/command/SimpleCommandJob.java
@@ -29,12 +29,12 @@
 import org.eclipse.ptp.internal.rm.jaxb.control.core.RemoteServicesDelegate;
 import org.eclipse.ptp.internal.rm.jaxb.control.core.messages.Messages;
 import org.eclipse.ptp.internal.rm.jaxb.control.core.utils.DebuggingLogger;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteProcess;
-import org.eclipse.ptp.remote.core.IRemoteProcessBuilder;
 import org.eclipse.ptp.rm.jaxb.control.core.ILaunchController;
 import org.eclipse.ptp.rm.jaxb.core.IVariableMap;
 import org.eclipse.ptp.rm.jaxb.core.data.SimpleCommandType;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteProcess;
+import org.eclipse.remote.core.IRemoteProcessBuilder;
 
 /**
  * Implementation of runnable Job for the simple execution of external processes. Uses the IRemoteProcessBuilder with the
@@ -267,7 +267,7 @@
 		if (DebuggingLogger.getLogger().getCommand()) {
 			System.out.println(getName() + ": " + args.getCommandLine(false)); //$NON-NLS-1$
 		}
-		IRemoteProcessBuilder builder = delegate.getRemoteServices().getProcessBuilder(conn, args.getTokenList());
+		IRemoteProcessBuilder builder = conn.getProcessBuilder(args.getTokenList());
 		if (fDirectory != null && !JAXBControlConstants.ZEROSTR.equals(fDirectory)) {
 			String directory = fVarMap.getString(fUuid, fDirectory);
 			IFileStore dir = delegate.getRemoteFileManager().getResource(directory);
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/variables/RMVariableMap.java b/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/variables/RMVariableMap.java
index cd821e5..7067ac7 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/variables/RMVariableMap.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.control.core/src/org/eclipse/ptp/internal/rm/jaxb/control/core/variables/RMVariableMap.java
@@ -27,9 +27,9 @@
 import org.eclipse.ptp.internal.rm.jaxb.control.core.JAXBControlConstants;
 import org.eclipse.ptp.internal.rm.jaxb.control.core.JAXBControlCorePlugin;
 import org.eclipse.ptp.internal.rm.jaxb.core.JAXBCoreConstants;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
 import org.eclipse.ptp.rm.jaxb.core.IVariableMap;
 import org.eclipse.ptp.rm.jaxb.core.data.AttributeType;
+import org.eclipse.remote.core.IRemoteConnection;
 
 /**
  * Abstraction representing all the Property and Attribute definitions associated with a resource manager configuration. This
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.ui/META-INF/MANIFEST.MF b/rms/org.eclipse.ptp.rm.jaxb.control.ui/META-INF/MANIFEST.MF
index 9e53770..d4b0f04 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.control.ui/META-INF/MANIFEST.MF
+++ b/rms/org.eclipse.ptp.rm.jaxb.control.ui/META-INF/MANIFEST.MF
@@ -2,18 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.ptp.rm.jaxb.control.ui;singleton:=true
-Bundle-Version: 1.2.0.qualifier
+Bundle-Version: 2.0.0.qualifier
 Bundle-Activator: org.eclipse.ptp.internal.rm.jaxb.control.ui.JAXBControlUIPlugin
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.ui,
  org.eclipse.ptp.rm.jaxb.control.core,
  org.eclipse.ptp.rm.jaxb.core,
  org.eclipse.core.filesystem,
- org.eclipse.ptp.remote.core,
  org.eclipse.core.variables,
  org.eclipse.ptp.core,
- org.eclipse.ptp.remote.ui,
- org.eclipse.ptp.remote.core,
+ org.eclipse.remote.ui,
+ org.eclipse.remote.core,
  org.eclipse.debug.core,
  org.eclipse.debug.ui,
  org.eclipse.ptp.rm.jaxb.ui,
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.ui/pom.xml b/rms/org.eclipse.ptp.rm.jaxb.control.ui/pom.xml
index 3896b6b..4e49413 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.control.ui/pom.xml
+++ b/rms/org.eclipse.ptp.rm.jaxb.control.ui/pom.xml
@@ -6,11 +6,11 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.rm.jaxb.control.ui</artifactId>
-  <version>1.2.0-SNAPSHOT</version>
+  <version>2.0.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/handlers/ControlStateListener.java b/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/handlers/ControlStateListener.java
index d983e5a..4b65dd3 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/handlers/ControlStateListener.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/handlers/ControlStateListener.java
@@ -17,7 +17,7 @@
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.ptp.core.util.CoreExceptionUtils;
 import org.eclipse.ptp.internal.rm.jaxb.control.ui.messages.Messages;
-import org.eclipse.ptp.internal.rm.jaxb.control.ui.utils.ControlStateRule;
+import org.eclipse.ptp.internal.rm.jaxb.control.ui.utils.ControlStateRuleUtil;
 import org.eclipse.ptp.rm.jaxb.core.IVariableMap;
 import org.eclipse.ptp.rm.jaxb.core.data.ControlStateRuleType;
 import org.eclipse.swt.SWT;
@@ -38,13 +38,17 @@
  */
 public class ControlStateListener implements SelectionListener {
 
+	private static final boolean DEBUG = false;
+
 	public enum Action {
 		ENABLE, DISABLE, SHOW, HIDE, NONE;
 	};
 
-	private final ControlStateRule rule;
 	private final Control target;
+	private final ControlStateRuleType rule;
 	private final Action action;
+	private final Map<String, Button> map;
+	private final IVariableMap varMap;
 
 	/**
 	 * @param target
@@ -58,20 +62,36 @@
 	 */
 	public ControlStateListener(Control target, ControlStateRuleType rule, Action action, Map<String, Button> map,
 			IVariableMap varMap) throws CoreException {
+
+		if (DEBUG)
+			System.out.println("Enter ControlStateListener.ControlStateListener target=" + target + " rule=" + rule + " action=" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+					+ action + " map=" + map + " varMap=" + varMap); //$NON-NLS-1$ //$NON-NLS-2$
+
 		this.target = target;
+		this.rule = rule;
 		this.action = action;
-		Set<Button> sources = new HashSet<Button>();
-		this.rule = new ControlStateRule(rule, map, sources, varMap);
-		for (Button b : sources) {
-			b.addSelectionListener(this);
+		this.map = map;
+		this.varMap = varMap;
+		Set<Button> buttonSources = new HashSet<Button>();
+		ControlStateRuleUtil.addSources(rule, map, buttonSources);
+		for (Button button : buttonSources) {
+			button.addSelectionListener(this);
 		}
+
+		if (DEBUG)
+			System.out.println("Exit1 ControlStateListener.ControlStateListener"); //$NON-NLS-1$
+
 	}
 
 	/**
 	 * Checks for cyclical dependencies by looking at the targets getting their listeners. The check is only done for listeners
 	 * associated with buttons as targets.
 	 */
-	public void findCyclicalDependecies(Set<Button> buttons) throws CoreException {
+	public void findCyclicalDependencies(Set<Button> buttons) throws CoreException {
+
+		if (DEBUG)
+			System.out.println("Enter ControlStateListener.findCyclicalDependencies buttons=" + buttons); //$NON-NLS-1$
+
 		if (target instanceof Button) {
 			if (buttons.contains(target)) {
 				throw CoreExceptionUtils.newException(NLS.bind(Messages.ControlStateListener_0, target) + buttons);
@@ -83,40 +103,71 @@
 				if (listener instanceof TypedListener) {
 					Object swtListener = ((TypedListener) listener).getEventListener();
 					if (swtListener instanceof ControlStateListener) {
-						((ControlStateListener) swtListener).findCyclicalDependecies(buttons);
+						((ControlStateListener) swtListener).findCyclicalDependencies(buttons);
 					}
 				}
 			}
 		}
+
+		if (DEBUG)
+			System.out.println("Exit1 ControlStateListener.findCyclicalDependencies"); //$NON-NLS-1$
+
 	}
 
 	/**
 	 * State of the controls in the rule is reevaluated and the state of the target is set accordingly.
 	 */
 	public void setState() {
+
+		if (DEBUG)
+			System.out.println("Enter ControlStateListener.setState"); //$NON-NLS-1$
+		if (DEBUG)
+			System.out.println("In ControlStateListener.setState target=" + target + " rule=" + rule + " action=" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+					+ action + " map=" + map + " varMap=" + varMap); //$NON-NLS-1$ //$NON-NLS-2$
+
 		synchronized (ControlStateListener.class) {
-			if (rule.evaluate()) {
+			if (ControlStateRuleUtil.evaluate(rule, map, varMap)) {
 				switch (action) {
 				case ENABLE:
+
+					if (DEBUG)
+						System.out.println("In ControlStateListener.setState target=" + target + " setEnabled(true)"); //$NON-NLS-1$ //$NON-NLS-2$
+
 					target.setEnabled(true);
 					break;
 				case DISABLE:
+
+					if (DEBUG)
+						System.out.println("In ControlStateListener.setState target=" + target + " setEnabled(false)"); //$NON-NLS-1$ //$NON-NLS-2$
+
 					target.setEnabled(false);
 					break;
 				case SHOW:
+
+					if (DEBUG)
+						System.out.println("In ControlStateListener.setState target=" + target + " setVisible(true)"); //$NON-NLS-1$ //$NON-NLS-2$
+
 					target.setVisible(true);
-					/* Showing means that the control's area is used, that is, 
-					 * it is included by the layout manager */
+					/*
+					 * Showing means that the control's area is used, that is,
+					 * it is included by the layout manager
+					 */
 					if (target.getLayoutData() instanceof GridData) {
-						((GridData)target.getLayoutData()).exclude = false;
+						((GridData) target.getLayoutData()).exclude = false;
 					}
 					break;
 				case HIDE:
+
+					if (DEBUG)
+						System.out.println("In ControlStateListener.setState target=" + target + " setVisible(false)"); //$NON-NLS-1$ //$NON-NLS-2$
+
 					target.setVisible(false);
-					/* Hiding means that the control's area is not used, that is, 
-					 * it is excluded by the layout manager */
+					/*
+					 * Hiding means that the control's area is not used, that is,
+					 * it is excluded by the layout manager
+					 */
 					if (target.getLayoutData() instanceof GridData) {
-						((GridData)target.getLayoutData()).exclude = true;
+						((GridData) target.getLayoutData()).exclude = true;
 					}
 					break;
 				default:
@@ -125,25 +176,45 @@
 			} else {
 				switch (action) {
 				case ENABLE:
+
+					if (DEBUG)
+						System.out.println("In ControlStateListener.setState target=" + target + " setEnabled(false)"); //$NON-NLS-1$ //$NON-NLS-2$
+
 					target.setEnabled(false);
 					break;
 				case DISABLE:
+
+					if (DEBUG)
+						System.out.println("In ControlStateListener.setState target=" + target + " setEnabled(true)"); //$NON-NLS-1$ //$NON-NLS-2$
+
 					target.setEnabled(true);
 					break;
 				case SHOW:
+
+					if (DEBUG)
+						System.out.println("In ControlStateListener.setState target=" + target + " setVisible(false)"); //$NON-NLS-1$ //$NON-NLS-2$
+
 					target.setVisible(false);
-					/* Hiding means that the control's area is not used, that is, 
-					 * it is excluded by the layout manager */
+					/*
+					 * Hiding means that the control's area is not used, that is,
+					 * it is excluded by the layout manager
+					 */
 					if (target.getLayoutData() instanceof GridData) {
-						((GridData)target.getLayoutData()).exclude = true;
+						((GridData) target.getLayoutData()).exclude = true;
 					}
 					break;
 				case HIDE:
+
+					if (DEBUG)
+						System.out.println("In ControlStateListener.setState target=" + target + " setVisible(true)"); //$NON-NLS-1$ //$NON-NLS-2$
+
 					target.setVisible(true);
-					/* Showing means that the control's area is used, that is, 
-					 * it is included by the layout manager */
+					/*
+					 * Showing means that the control's area is used, that is,
+					 * it is included by the layout manager
+					 */
 					if (target.getLayoutData() instanceof GridData) {
-						((GridData)target.getLayoutData()).exclude = false;
+						((GridData) target.getLayoutData()).exclude = false;
 					}
 					break;
 				default:
@@ -151,6 +222,10 @@
 				}
 			}
 		}
+
+		if (DEBUG)
+			System.out.println("Exit1 ControlStateListener.setState"); //$NON-NLS-1$
+
 	}
 
 	/*
@@ -159,7 +234,15 @@
 	 * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse .swt.events.SelectionEvent)
 	 */
 	public void widgetDefaultSelected(SelectionEvent e) {
+
+		if (DEBUG)
+			System.out.println("Enter ControlStateListener.widgetDefaultSelected e=" + e); //$NON-NLS-1$
+
 		setState();
+
+		if (DEBUG)
+			System.out.println("Exit1 ControlStateListener.widgetDefaultSelected"); //$NON-NLS-1$
+
 	}
 
 	/*
@@ -168,6 +251,14 @@
 	 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt .events.SelectionEvent)
 	 */
 	public void widgetSelected(SelectionEvent e) {
+
+		if (DEBUG)
+			System.out.println("Enter ControlStateListener.widgetSelected e=" + e); //$NON-NLS-1$
+
 		setState();
+
+		if (DEBUG)
+			System.out.println("Exit1 ControlStateListener.widgetSelected"); //$NON-NLS-1$
+
 	}
 }
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/launch/IJAXBLaunchConfigurationTab.java b/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/launch/IJAXBLaunchConfigurationTab.java
index b6e0373..e19a2d8 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/launch/IJAXBLaunchConfigurationTab.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/launch/IJAXBLaunchConfigurationTab.java
@@ -16,10 +16,10 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.debug.ui.ILaunchConfigurationDialog;
 import org.eclipse.ptp.internal.rm.jaxb.control.ui.handlers.ControlStateListener;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
 import org.eclipse.ptp.rm.jaxb.control.ui.IUpdateModel;
 import org.eclipse.ptp.rm.jaxb.core.data.ButtonActionType;
 import org.eclipse.ptp.rm.jaxb.core.data.TabControllerType;
+import org.eclipse.remote.core.IRemoteConnection;
 
 /**
  * Target Configuration Dynamic Tab interface. Corresponds to the "dynamic" element in the target configuration.
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/launch/IJAXBParentLaunchConfigurationTab.java b/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/launch/IJAXBParentLaunchConfigurationTab.java
index a3738e7..546efad 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/launch/IJAXBParentLaunchConfigurationTab.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/launch/IJAXBParentLaunchConfigurationTab.java
@@ -12,10 +12,11 @@
 
 import org.eclipse.debug.ui.ILaunchConfigurationDialog;
 import org.eclipse.ptp.internal.rm.jaxb.control.ui.variables.LCVariableMap;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
 import org.eclipse.ptp.rm.jaxb.control.core.ILaunchController;
 import org.eclipse.ptp.rm.jaxb.control.ui.IUpdateHandler;
+import org.eclipse.ptp.rm.jaxb.core.IVariableMap;
 import org.eclipse.ptp.rm.jaxb.core.data.ScriptType;
+import org.eclipse.remote.core.IRemoteConnection;
 
 /**
  * Target Configuration Launch Tab interface. Corresponds to the "launch-tab" element in the target configuration.
@@ -32,6 +33,8 @@
 
 	public IUpdateHandler getUpdateHandler();
 
+	public IVariableMap getRMVariableMap();
+	
 	public LCVariableMap getVariableMap();
 
 	public boolean hasScript();
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/messages/Messages.java b/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/messages/Messages.java
index 23290e7..3dd1aa1 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/messages/Messages.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/messages/Messages.java
@@ -34,9 +34,9 @@
 	public static String IllegalVariableValueType;
 	public static String TabInitialization;
 	public static String ControlStateListener_0;
-	public static String ControlStateRule_0;
-	public static String ControlStateRule_1;
-	public static String ControlStateRule_2;
+	public static String ControlStateRuleUtil_0;
+	public static String ControlStateRuleUtil_1;
+	public static String ControlStateRuleUtil_2;
 	public static String WidgetInstantiationError;
 	public static String JAXBRMPreferencesPage_Preferences_options;
 	public static String JAXBRMPreferencesPage_ParserDebug_options;
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/messages/messages.properties b/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/messages/messages.properties
index 4e1276b..757657e 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/messages/messages.properties
+++ b/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/messages/messages.properties
@@ -19,9 +19,9 @@
 TabInitialization=Initializing Launch Tab
 
 ControlStateListener_0=Found cyclical dependency starting with listener for target {0}, with sources: 
-ControlStateRule_0=No such button mapped to button id: {0}
-ControlStateRule_1=No such attribute: {0}
-ControlStateRule_2=Must specify a value for the attribute: {0}
+ControlStateRuleUtil_0=No such button mapped to button id: {0}
+ControlStateRuleUtil_1=No such attribute: {0}
+ControlStateRuleUtil_2=Must specify a value for the attribute: {0}
 WidgetInstantiationError=Could not instantiate Widget extension: {0}
 
 JAXBRMPreferencesPage_Preferences_options=Configuration Options
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/utils/ControlStateRule.java b/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/utils/ControlStateRule.java
deleted file mode 100644
index 653b987..0000000
--- a/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/utils/ControlStateRule.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 University of Illinois All rights reserved. This program
- * and the accompanying materials are made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html 
- * 	
- * Contributors: 
- * 	Albert L. Rossi - design and implementation
- ******************************************************************************/
-package org.eclipse.ptp.internal.rm.jaxb.control.ui.utils;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ptp.core.util.CoreExceptionUtils;
-import org.eclipse.ptp.internal.rm.jaxb.control.ui.messages.Messages;
-import org.eclipse.ptp.rm.jaxb.core.IVariableMap;
-import org.eclipse.ptp.rm.jaxb.core.data.AttributeType;
-import org.eclipse.ptp.rm.jaxb.core.data.ControlStateRuleType;
-import org.eclipse.swt.widgets.Button;
-
-/**
- * Implementation of the rule defined against button selection.
- * 
- * @author arossi
- * 
- */
-public class ControlStateRule {
-
-	private ControlStateRule not;
-	private List<ControlStateRule> and;
-	private List<ControlStateRule> or;
-	private Button button;
-	private boolean selected;
-	private String attribute;
-	private String value;
-	private final IVariableMap varMap;
-
-	/**
-	 * Composes the rule; adds each button source to the set which the listener will subscribe to for events.
-	 * 
-	 * @param rule
-	 *            JAXB element
-	 * @param map
-	 *            index of Widget controls
-	 * @param sources
-	 *            set of Buttons which are the sources in this rule
-	 */
-	public ControlStateRule(ControlStateRuleType rule, Map<String, Button> map, Set<Button> sources, IVariableMap varMap)
-			throws CoreException {
-		this.varMap = varMap;
-		ControlStateRuleType.Not not = rule.getNot();
-		if (not != null) {
-			this.not = new ControlStateRule(not.getRule(), map, sources, varMap);
-		} else {
-			ControlStateRuleType.And and = rule.getAnd();
-			if (and != null) {
-				List<ControlStateRuleType> list = and.getRule();
-				if (!list.isEmpty()) {
-					this.and = new ArrayList<ControlStateRule>();
-					for (ControlStateRuleType t : list) {
-						this.and.add(new ControlStateRule(t, map, sources, varMap));
-					}
-				}
-			} else {
-				ControlStateRuleType.Or or = rule.getOr();
-				if (or != null) {
-					List<ControlStateRuleType> list = or.getRule();
-					if (!list.isEmpty()) {
-						this.or = new ArrayList<ControlStateRule>();
-						for (ControlStateRuleType t : list) {
-							this.or.add(new ControlStateRule(t, map, sources, varMap));
-						}
-					}
-				} else {
-					if (rule.getButton() != null) {
-						button = map.get(rule.getButton());
-						if (button == null) {
-							throw CoreExceptionUtils.newException(NLS.bind(Messages.ControlStateRule_0, rule.getButton()));
-						}
-						selected = rule.isSelected();
-						sources.add(button);
-					} else if (rule.getAttribute() != null) {
-						attribute = rule.getAttribute();
-						if (attribute == null) {
-							throw CoreExceptionUtils.newException(NLS.bind(Messages.ControlStateRule_1, rule.getAttribute()));
-						}
-						value = rule.getValue();
-						if (value == null) {
-							throw CoreExceptionUtils.newException(NLS.bind(Messages.ControlStateRule_2, rule.getAttribute()));
-						}
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Triggered when an event is received. Recursively evaluates all clauses. Bottoms out in the check of the button selection.
-	 * 
-	 * @return whether the rule is satisfied
-	 */
-	public boolean evaluate() {
-		if (not != null) {
-			return !not.evaluate();
-		}
-		if (and != null) {
-			for (ControlStateRule rule : and) {
-				if (!rule.evaluate()) {
-					return false;
-				}
-			}
-			return true;
-		}
-		if (or != null) {
-			for (ControlStateRule rule : or) {
-				if (rule.evaluate()) {
-					return true;
-				}
-			}
-			return false;
-		}
-		if (attribute != null) {
-			AttributeType attr = varMap.get(attribute);
-			String attrVal = null;
-			if (attr != null && attr.getValue() != null) {
-				attrVal = attr.getValue().toString();
-			}
-			return value.equals(attrVal);
-		}
-		return selected == button.getSelection();
-	}
-}
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/utils/ControlStateRuleUtil.java b/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/utils/ControlStateRuleUtil.java
new file mode 100644
index 0000000..be3f39a
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/utils/ControlStateRuleUtil.java
@@ -0,0 +1,414 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Brian Watt.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 	
+ * Contributors: 
+ * Brian D. Watt - design and implementation
+ ******************************************************************************/
+
+package org.eclipse.ptp.internal.rm.jaxb.control.ui.utils;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.ptp.core.util.CoreExceptionUtils;
+import org.eclipse.ptp.internal.rm.jaxb.control.ui.messages.Messages;
+import org.eclipse.ptp.rm.jaxb.core.IVariableMap;
+import org.eclipse.ptp.rm.jaxb.core.data.AttributeType;
+import org.eclipse.ptp.rm.jaxb.core.data.ControlStateRuleType;
+import org.eclipse.swt.widgets.Button;
+
+public class ControlStateRuleUtil {
+
+	private static final boolean DEBUG = false;
+
+	/**
+	 * Search the ControlStateRule for button-elements, look them up to find their associated SWT button and add them to the set of
+	 * source buttons. If a not-element, an and-element or an or-element are encountered then descend into their elements and
+	 * continue searching for buttons. If an attribute-element is encountered just check it, but otherwise do nothing with it.
+	 * 
+	 * @param controlStateRuleType
+	 * @param buttonMap
+	 * @param buttonSources
+	 * @throws CoreException
+	 */
+	public static void addSources(ControlStateRuleType controlStateRuleType, Map<String, Button> buttonMap,
+			Set<Button> buttonSources)
+			throws CoreException {
+
+		if (DEBUG)
+			System.out.println("Enter ControlStateRuleUtil.addSources controlStateRuleType=" + controlStateRuleType + " buttonMap=" //$NON-NLS-1$ //$NON-NLS-2$
+					+ buttonMap + " buttonSources=" + buttonSources); //$NON-NLS-1$
+
+		if (controlStateRuleType.getNot() != null) {
+			ControlStateRuleUtil.addSources(controlStateRuleType.getNot(), buttonMap, buttonSources);
+		}
+
+		if (controlStateRuleType.getAnd() != null) {
+			ControlStateRuleUtil.addSources(controlStateRuleType.getAnd(), buttonMap, buttonSources);
+		}
+
+		if (controlStateRuleType.getOr() != null) {
+			ControlStateRuleUtil.addSources(controlStateRuleType.getOr(), buttonMap, buttonSources);
+		}
+
+		if (controlStateRuleType.getButton() != null) {
+			String buttonKey = controlStateRuleType.getButton();
+			Button button = buttonMap.get(buttonKey);
+			if (button != null) {
+				buttonSources.add(button);
+			} else {
+				throw CoreExceptionUtils.newException(NLS.bind(Messages.ControlStateRuleUtil_0, controlStateRuleType.getButton()));
+			}
+		}
+
+		if (controlStateRuleType.getAttribute() != null) {
+			String attribute = controlStateRuleType.getAttribute();
+			if (attribute == null) {
+				throw CoreExceptionUtils
+						.newException(NLS.bind(Messages.ControlStateRuleUtil_1, controlStateRuleType.getAttribute()));
+			}
+			String value = controlStateRuleType.getValue();
+			if (value == null) {
+				throw CoreExceptionUtils
+						.newException(NLS.bind(Messages.ControlStateRuleUtil_2, controlStateRuleType.getAttribute()));
+			}
+		}
+
+		if (DEBUG)
+			System.out.println("Exit1 ControlStateRuleUtil.addSources buttonSources=" + buttonSources); //$NON-NLS-1$
+
+	}
+
+	/**
+	 * Search a not-element by descending into its element and adding buttons.
+	 * 
+	 * @param controlStateRuleTypeNot
+	 * @param buttonMap
+	 * @param buttonSources
+	 * @throws CoreException
+	 */
+	public static void addSources(ControlStateRuleType.Not controlStateRuleTypeNot, Map<String, Button> buttonMap,
+			Set<Button> buttonSources) throws CoreException {
+
+		if (DEBUG)
+			System.out.println("Enter ControlStateRuleUtil.addSources Not controlStateRuleTypeNot=" + controlStateRuleTypeNot //$NON-NLS-1$
+					+ " buttonMap=" + buttonMap + " sources=" + buttonSources); //$NON-NLS-1$ //$NON-NLS-2$
+
+		ControlStateRuleUtil.addSources(controlStateRuleTypeNot.getRule(), buttonMap, buttonSources);
+
+		if (DEBUG)
+			System.out.println("Exit1 ControlStateRuleUtil.addSources Not buttonSources=" + buttonSources); //$NON-NLS-1$
+
+	}
+
+	/**
+	 * Search an and-element by descending into its list of elements and adding buttons.
+	 * 
+	 * @param controlStateRuleTypeAnd
+	 * @param buttonMap
+	 * @param buttonSources
+	 * @throws CoreException
+	 */
+	public static void addSources(ControlStateRuleType.And controlStateRuleTypeAnd, Map<String, Button> buttonMap,
+			Set<Button> buttonSources) throws CoreException {
+
+		if (DEBUG)
+			System.out.println("Enter ControlStateRuleUtil.addSources And controlStateRuleTypeAnd=" + controlStateRuleTypeAnd //$NON-NLS-1$
+					+ " buttonMap=" + buttonMap + " sources=" + buttonSources); //$NON-NLS-1$ //$NON-NLS-2$
+
+		List<ControlStateRuleType> list = controlStateRuleTypeAnd.getRule();
+		for (ControlStateRuleType rule : list) {
+			ControlStateRuleUtil.addSources(rule, buttonMap, buttonSources);
+		}
+
+		if (DEBUG)
+			System.out.println("Exit1 ControlStateRuleUtil.addSources And buttonSources=" + buttonSources); //$NON-NLS-1$
+
+	}
+
+	/**
+	 * Search an or-element by descending into its list of elements and adding buttons.
+	 * 
+	 * @param controlStateRuleTypeOr
+	 * @param buttonMap
+	 * @param buttonSources
+	 * @throws CoreException
+	 */
+	public static void addSources(ControlStateRuleType.Or controlStateRuleTypeOr, Map<String, Button> buttonMap,
+			Set<Button> buttonSources)
+			throws CoreException {
+
+		if (DEBUG)
+			System.out.println("Enter ControlStateRuleUtil.addSources Or controlStateRuleTypeOr=" + controlStateRuleTypeOr //$NON-NLS-1$
+					+ " buttonMap=" + buttonMap + " buttonSources=" + buttonSources); //$NON-NLS-1$ //$NON-NLS-2$
+
+		List<ControlStateRuleType> list = controlStateRuleTypeOr.getRule();
+		for (ControlStateRuleType rule : list) {
+			ControlStateRuleUtil.addSources(rule, buttonMap, buttonSources);
+		}
+
+		if (DEBUG)
+			System.out.println("Exit1 ControlStateRuleUtil.addSources Or buttonSources=" + buttonSources); //$NON-NLS-1$
+
+	}
+
+	/**
+	 * Evaluate the ControlStateRule and return a boolean result. If a not-element, an and-element or an or-element are encountered
+	 * then descend into their elements and evaluate them. If a button-element is encountered then evaluate it. If an
+	 * attribute-element is encountered then evaluate it too.
+	 * 
+	 * @param controlStateRuleType
+	 * @param buttonMap
+	 * @param varianbleMap
+	 * @return
+	 */
+	public static boolean evaluate(ControlStateRuleType controlStateRuleType, Map<String, Button> buttonMap,
+			IVariableMap varianbleMap) {
+
+		if (DEBUG)
+			System.out.println("Enter ControlStateRuleUtil.evaluate controlStateRuleType=" + controlStateRuleType //$NON-NLS-1$
+					+ " buttonMap=" + buttonMap + " varianbleMap=" + varianbleMap); //$NON-NLS-1$ //$NON-NLS-2$
+
+		if (controlStateRuleType.getNot() != null) {
+			boolean result = ControlStateRuleUtil.evaluate(controlStateRuleType.getNot(), buttonMap, varianbleMap);
+
+			if (DEBUG)
+				System.out.println("Exit1 ControlStateRuleUtil.evaluate result=" + result); //$NON-NLS-1$
+
+			return result;
+		}
+
+		if (controlStateRuleType.getAnd() != null) {
+			boolean result = ControlStateRuleUtil.evaluate(controlStateRuleType.getAnd(), buttonMap, varianbleMap);
+
+			if (DEBUG)
+				System.out.println("Exit2 ControlStateRuleUtil.evaluate result=" + result); //$NON-NLS-1$
+
+			return result;
+		}
+
+		if (controlStateRuleType.getOr() != null) {
+			boolean result = ControlStateRuleUtil.evaluate(controlStateRuleType.getOr(), buttonMap, varianbleMap);
+
+			if (DEBUG)
+				System.out.println("Exit3 ControlStateRuleUtil.evaluate result=" + result); //$NON-NLS-1$
+
+			return result;
+		}
+
+		if (controlStateRuleType.getButton() != null) {
+			boolean result = ControlStateRuleUtil.evaluate(controlStateRuleType.getButton(), buttonMap,
+					controlStateRuleType.isSelected());
+
+			if (DEBUG)
+				System.out.println("Exit4 ControlStateRuleUtil.evaluate result=" + result); //$NON-NLS-1$
+
+			return result;
+		}
+
+		if (controlStateRuleType.getAttribute() != null) {
+			boolean result = ControlStateRuleUtil.evaluate(controlStateRuleType.getAttribute(), varianbleMap,
+					controlStateRuleType.getValue());
+
+			if (DEBUG)
+				System.out.println("Exit5 ControlStateRuleUtil.evaluate result=" + result); //$NON-NLS-1$
+
+			return result;
+		}
+		boolean result = true;
+
+		if (DEBUG)
+			System.out.println("Exit6 ControlStateRuleUtil.evaluate result=" + result); //$NON-NLS-1$
+
+		return result;
+	}
+
+	/**
+	 * Evaluate a not-element by descending into its element, evaluating it and returning the NOT (!) of the result.
+	 * 
+	 * @param controlStateRuleTypeNot
+	 * @param buttonMap
+	 * @param varianbleMap
+	 * @return
+	 */
+	public static boolean evaluate(ControlStateRuleType.Not controlStateRuleTypeNot, Map<String, Button> buttonMap,
+			IVariableMap varianbleMap) {
+
+		if (DEBUG)
+			System.out.println("Enter ControlStateRuleUtil.evaluate Not controlStateRuleTypeNot=" + controlStateRuleTypeNot //$NON-NLS-1$
+					+ " buttonMap=" + buttonMap + " varianbleMap=" + varianbleMap); //$NON-NLS-1$ //$NON-NLS-2$
+
+		boolean result = !ControlStateRuleUtil.evaluate(controlStateRuleTypeNot.getRule(), buttonMap, varianbleMap);
+
+		if (DEBUG)
+			System.out.println("Exit1 ControlStateRuleUtil.evaluate Not result=" + result); //$NON-NLS-1$
+
+		return result;
+
+	}
+
+	/**
+	 * Evaluate an and-element by descending into its list of elements, evaluating them and returning the AND (&&) of the results.
+	 * 
+	 * @param controlStateRuleTypeAnd
+	 * @param buttonMap
+	 * @param varianbleMap
+	 * @return
+	 */
+	public static boolean evaluate(ControlStateRuleType.And controlStateRuleTypeAnd, Map<String, Button> buttonMap,
+			IVariableMap varianbleMap) {
+
+		if (DEBUG)
+			System.out.println("Enter ControlStateRuleUtil.evaluate And controlStateRuleTypeAnd=" + controlStateRuleTypeAnd //$NON-NLS-1$
+					+ " buttonMap=" + buttonMap + " varianbleMap=" + varianbleMap); //$NON-NLS-1$ //$NON-NLS-2$
+
+		List<ControlStateRuleType> list = controlStateRuleTypeAnd.getRule();
+		for (ControlStateRuleType rule : list) {
+			if (!ControlStateRuleUtil.evaluate(rule, buttonMap, varianbleMap)) {
+				boolean result = false;
+
+				if (DEBUG)
+					System.out.println("Exit1 ControlStateRuleUtil.evaluate And result=" + result); //$NON-NLS-1$
+
+				return result;
+			}
+		}
+		boolean result = true;
+
+		if (DEBUG)
+			System.out.println("Exit2 ControlStateRuleUtil.evaluate And result=" + result); //$NON-NLS-1$
+
+		return result;
+
+	}
+
+	/**
+	 * Evaluate an or-element by descending into its list of elements, evaluating them and returning the OR (||) of the results.
+	 * 
+	 * @param controlStateRuleTypeOr
+	 * @param buttonMap
+	 * @param varianbleMap
+	 * @return
+	 */
+	public static boolean evaluate(ControlStateRuleType.Or controlStateRuleTypeOr, Map<String, Button> buttonMap,
+			IVariableMap varianbleMap) {
+
+		if (DEBUG)
+			System.out.println("Enter ControlStateRuleUtil.evaluate Or controlStateRuleTypeOr=" + controlStateRuleTypeOr //$NON-NLS-1$
+					+ " buttonMap=" + buttonMap + " varianbleMap=" + varianbleMap); //$NON-NLS-1$ //$NON-NLS-2$
+
+		List<ControlStateRuleType> list = controlStateRuleTypeOr.getRule();
+		for (ControlStateRuleType rule : list) {
+			if (ControlStateRuleUtil.evaluate(rule, buttonMap, varianbleMap)) {
+				boolean result = true;
+
+				if (DEBUG)
+					System.out.println("Exit1 ControlStateRuleUtil.evaluate Or result=" + result); //$NON-NLS-1$
+
+				return result;
+			}
+		}
+		boolean result = false;
+
+		if (DEBUG)
+			System.out.println("Exit2 ControlStateRuleUtil.evaluate Or result=" + result); //$NON-NLS-1$
+
+		return result;
+
+	}
+
+	/**
+	 * Evaluate a button-element by getting the button, getting its selection and comparing it with the selected-element value.
+	 * 
+	 * @param ruleButton
+	 * @param buttonMap
+	 * @param ruleSelected
+	 * @return
+	 */
+	public static boolean evaluate(String ruleButton, Map<String, Button> buttonMap, boolean ruleSelected) {
+
+		if (DEBUG)
+			System.out.println("Enter ControlStateRuleUtil.evaluate Button ruleButton=" + ruleButton //$NON-NLS-1$
+					+ " buttonMap=" + buttonMap + " ruleSelected=" + ruleSelected); //$NON-NLS-1$ //$NON-NLS-2$
+
+		Button button = buttonMap.get(ruleButton);
+		if (button != null) {
+			boolean result = ruleSelected == button.getSelection();
+
+			if (DEBUG)
+				System.out.println("Exit1 ControlStateRuleUtil.evaluate Button result=" + result); //$NON-NLS-1$
+
+			return result;
+		}
+		boolean result = false;
+
+		if (DEBUG)
+			System.out.println("Exit2 ControlStateRuleUtil.evaluate Button result=" + result); //$NON-NLS-1$
+
+		return result;
+
+	}
+
+	/**
+	 * Evaluate an attribute-element by getting the attribute, getting its value and comparing it with the value-element value.
+	 * 
+	 * @param ruleAttribute
+	 * @param variableMap
+	 * @param ruleValue
+	 * @return
+	 */
+	public static boolean evaluate(String ruleAttribute, IVariableMap variableMap, String ruleValue) {
+
+		if (DEBUG)
+			System.out.println("Enter ControlStateRuleUtil.evaluate Attribute attribute=" + ruleAttribute //$NON-NLS-1$
+					+ " varianbleMap=" + variableMap + " value=" + ruleValue); //$NON-NLS-1$ //$NON-NLS-2$
+
+		/* Check if there is a value in the rule */
+		if (ruleValue != null) {
+			/*
+			 * There is a value in the rule, so check if there is a value in the variable map for this attribute and if
+			 * the values are or are not equal
+			 */
+			AttributeType attributeType = variableMap.get(ruleAttribute);
+			if (attributeType != null && attributeType.getValue() != null) {
+				/* Check if the value does or does not match with the value in the launch configuration */
+				boolean result = ruleValue.equals(attributeType.getValue().toString());
+
+				if (DEBUG)
+					System.out.println("Exit1 ControlStateRuleUtil.evaluate Attribute result=" + result); //$NON-NLS-1$
+
+				return result;
+			}
+		} else {
+			/*
+			 * There is no value in the rule, so check if there is a value in the variable map for this attribute, that
+			 * is, if the attribute is or is not defined
+			 */
+			AttributeType attributeType = variableMap.get(ruleAttribute);
+			if (attributeType != null) {
+				/* Value is defined in the launch configuration, that is, the attribute is defined */
+				boolean result = true;
+
+				if (DEBUG)
+					System.out.println("Exit2 ControlStateRuleUtil.evaluate Attribute result=" + result); //$NON-NLS-1$
+
+				return result;
+			}
+		}
+		/* Value is not defined in the launch configuration or there was an exception */
+		boolean result = false;
+
+		if (DEBUG)
+			System.out.println("Exit3 ControlStateRuleUtil.evaluate Attribute result=" + result); //$NON-NLS-1$
+
+		return result;
+	}
+
+}
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/utils/LaunchTabBuilder.java b/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/utils/LaunchTabBuilder.java
index 2132f4e..5abae33 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/utils/LaunchTabBuilder.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/utils/LaunchTabBuilder.java
@@ -158,7 +158,11 @@
 	 */
 	public LaunchTabBuilder(IJAXBLaunchConfigurationTab tab) {
 		this.tab = tab;
-		this.rmVarMap = tab.getParent().getJobControl().getEnvironment();
+		if(tab.getParent().getRMVariableMap() != null) {
+			this.rmVarMap = tab.getParent().getRMVariableMap();
+		} else {
+			this.rmVarMap = tab.getParent().getJobControl().getEnvironment();
+		}
 	}
 
 	/**
@@ -222,7 +226,7 @@
 	 * @return top-level composite control
 	 * @throws Throwable
 	 */
-	public Composite build(Composite parent) throws CoreException {
+	public Composite build(Composite parent, boolean checkCycles) throws CoreException {
 		tab.getLocalWidgets().clear();
 		TabControllerType top = tab.getController();
 		Layout layout = createLayout(top.getLayout());
@@ -242,7 +246,7 @@
 			composite.setFont(WidgetBuilderUtils.getFont(fd));
 		}
 
-		maybeWireWidgets();
+		maybeWireWidgets(checkCycles);
 		return composite;
 	}
 
@@ -662,7 +666,7 @@
 	/**
 	 * Constructs a listener for each defined category of action on the target and adds it to the sources referenced in the rule.
 	 */
-	private void maybeWireWidgets() throws CoreException {
+	private void maybeWireWidgets(boolean checkCycles) throws CoreException {
 		Collection<ControlStateListener> listeners = new HashSet<ControlStateListener>();
 		for (ControlStateType cst : targets.keySet()) {
 			Control target = targets.get(cst);
@@ -694,7 +698,9 @@
 		Set<Button> dependSet = new HashSet<Button>();
 		for (ControlStateListener listener : listeners) {
 			dependSet.clear();
-			listener.findCyclicalDependecies(dependSet);
+			if(checkCycles) {
+				listener.findCyclicalDependencies(dependSet);
+			}
 		}
 
 		tab.setListeners(listeners);
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/utils/UpdateModelFactory.java b/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/utils/UpdateModelFactory.java
index 75ad1ad..c27f855 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/utils/UpdateModelFactory.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/utils/UpdateModelFactory.java
@@ -49,12 +49,6 @@
 import org.eclipse.ptp.internal.rm.jaxb.control.ui.model.ValueTreeNodeUpdateModel;
 import org.eclipse.ptp.internal.rm.jaxb.control.ui.model.ViewerUpdateModel;
 import org.eclipse.ptp.internal.rm.jaxb.ui.util.WidgetBuilderUtils;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIConstants;
-import org.eclipse.ptp.remote.ui.IRemoteUIFileManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIServices;
-import org.eclipse.ptp.remote.ui.RemoteUIServices;
 import org.eclipse.ptp.rm.jaxb.control.ui.ICellEditorUpdateModel;
 import org.eclipse.ptp.rm.jaxb.control.ui.IUpdateHandler;
 import org.eclipse.ptp.rm.jaxb.control.ui.IUpdateModel;
@@ -74,6 +68,12 @@
 import org.eclipse.ptp.rm.jaxb.core.data.LayoutDataType;
 import org.eclipse.ptp.rm.jaxb.core.data.PushButtonType;
 import org.eclipse.ptp.rm.jaxb.core.data.WidgetType;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.ui.IRemoteUIConstants;
+import org.eclipse.remote.ui.IRemoteUIFileManager;
+import org.eclipse.remote.ui.IRemoteUIServices;
+import org.eclipse.remote.ui.RemoteUIServices;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
@@ -652,7 +652,7 @@
 					RemoteServicesDelegate delegate = RemoteServicesDelegate.getDelegate(conn.getRemoteServices().getId(),
 							conn.getName(), null);
 					if (JAXBControlUIConstants.ZEROSTR.equals(initial)) {
-						IRemoteFileManager mgr = conn.getRemoteServices().getFileManager(conn);
+						IRemoteFileManager mgr = conn.getFileManager();
 						uri = mgr.toURI(tab.getParent().getConnection().getWorkingDirectory());
 					} else {
 						uri = new URI(initial);
@@ -1239,8 +1239,7 @@
 				 */
 				public Object validate(Object value) throws Exception {
 					IRemoteConnection conn = tab.getConnection();
-					WidgetActionUtils.validate(String.valueOf(value), attr.getValidator(),
-							conn.getRemoteServices().getFileManager(conn));
+					WidgetActionUtils.validate(String.valueOf(value), attr.getValidator(), conn.getFileManager());
 					return value;
 				}
 
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/utils/WidgetActionUtils.java b/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/utils/WidgetActionUtils.java
index c1a2d60..7c2d8d6 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/utils/WidgetActionUtils.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/internal/rm/jaxb/control/ui/utils/WidgetActionUtils.java
@@ -38,13 +38,13 @@
 import org.eclipse.ptp.internal.rm.jaxb.control.core.exceptions.UnsatisfiedMatchException;
 import org.eclipse.ptp.internal.rm.jaxb.control.ui.JAXBControlUIConstants;
 import org.eclipse.ptp.internal.rm.jaxb.ui.JAXBUIConstants;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
 import org.eclipse.ptp.rm.jaxb.core.IVariableMap;
 import org.eclipse.ptp.rm.jaxb.core.data.AttributeType;
 import org.eclipse.ptp.rm.jaxb.core.data.FileMatchType;
 import org.eclipse.ptp.rm.jaxb.core.data.RangeType;
 import org.eclipse.ptp.rm.jaxb.core.data.RegexType;
 import org.eclipse.ptp.rm.jaxb.core.data.ValidatorType;
+import org.eclipse.remote.core.IRemoteFileManager;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.FileDialog;
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/rm/jaxb/control/ui/AbstractWidget.java b/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/rm/jaxb/control/ui/AbstractWidget.java
index de270a1..2d86d4d 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/rm/jaxb/control/ui/AbstractWidget.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/rm/jaxb/control/ui/AbstractWidget.java
@@ -40,7 +40,7 @@
 	 *            a widget which will be the parent of the new instance (cannot be null)
 	 * @param wd
 	 *            a widget descriptor containing additional information useful to the control
-	 * @since 1.2
+	 * @since 2.0
 	 */
 	protected AbstractWidget(Composite parent, IWidgetDescriptor2 wd) {
 		this(parent, (IWidgetDescriptor) wd);
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/rm/jaxb/control/ui/IWidgetDescriptor.java b/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/rm/jaxb/control/ui/IWidgetDescriptor.java
index fede21c..bc6110f 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/rm/jaxb/control/ui/IWidgetDescriptor.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/rm/jaxb/control/ui/IWidgetDescriptor.java
@@ -11,7 +11,7 @@
 
 package org.eclipse.ptp.rm.jaxb.control.ui;
 
-import org.eclipse.ptp.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnection;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.graphics.Font;
 
@@ -98,6 +98,7 @@
 	 * Get the remote connection of the widget.
 	 * 
 	 * @return the remote connection
+	 * @since 2.0
 	 */
 	public IRemoteConnection getRemoteConnection();
 
diff --git a/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/rm/jaxb/control/ui/IWidgetDescriptor2.java b/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/rm/jaxb/control/ui/IWidgetDescriptor2.java
index 7d83d7f..f150651 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/rm/jaxb/control/ui/IWidgetDescriptor2.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.control.ui/src/org/eclipse/ptp/rm/jaxb/control/ui/IWidgetDescriptor2.java
@@ -17,7 +17,7 @@
  * Extended API for widget objects associated with SWT controls.
  * 
  * @author gwatson
- * @since 1.2
+ * @since 2.0
  * 
  */
 public interface IWidgetDescriptor2 extends IWidgetDescriptor {
diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/.settings/.api_filters b/rms/org.eclipse.ptp.rm.jaxb.core/.settings/.api_filters
index 4a76063..4eee593 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/.settings/.api_filters
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/.settings/.api_filters
@@ -1,422 +1,383 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.ptp.rm.jaxb.core" version="2">
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/AddType.java" type="org.eclipse.ptp.rm.jaxb.core.data.AddType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.AddType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/AppendType.java" type="org.eclipse.ptp.rm.jaxb.core.data.AppendType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.AppendType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/ArgType.java" type="org.eclipse.ptp.rm.jaxb.core.data.ArgType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.ArgType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/AttributeType.java" type="org.eclipse.ptp.rm.jaxb.core.data.AttributeType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.AttributeType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/AttributeViewerType.java" type="org.eclipse.ptp.rm.jaxb.core.data.AttributeViewerType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.AttributeViewerType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/BrowseType.java" type="org.eclipse.ptp.rm.jaxb.core.data.BrowseType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.BrowseType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/ButtonActionType.java" type="org.eclipse.ptp.rm.jaxb.core.data.ButtonActionType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.ButtonActionType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/ButtonGroupType.java" type="org.eclipse.ptp.rm.jaxb.core.data.ButtonGroupType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.ButtonGroupType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/ColumnDataType.java" type="org.eclipse.ptp.rm.jaxb.core.data.ColumnDataType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.ColumnDataType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/CommandType.java" type="org.eclipse.ptp.rm.jaxb.core.data.CommandType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.CommandType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/CompositeType.java" type="org.eclipse.ptp.rm.jaxb.core.data.CompositeType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.CompositeType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/ControlStateRuleType.java" type="org.eclipse.ptp.rm.jaxb.core.data.ControlStateRuleType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.ControlStateRuleType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/ControlStateType.java" type="org.eclipse.ptp.rm.jaxb.core.data.ControlStateType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.ControlStateType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/ControlType.java" type="org.eclipse.ptp.rm.jaxb.core.data.ControlType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.ControlType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/EntryType.java" type="org.eclipse.ptp.rm.jaxb.core.data.EntryType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.EntryType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/EnvironmentType.java" type="org.eclipse.ptp.rm.jaxb.core.data.EnvironmentType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.EnvironmentType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/FileMatchType.java" type="org.eclipse.ptp.rm.jaxb.core.data.FileMatchType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.FileMatchType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/FillLayoutType.java" type="org.eclipse.ptp.rm.jaxb.core.data.FillLayoutType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.FillLayoutType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/FontType.java" type="org.eclipse.ptp.rm.jaxb.core.data.FontType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.FontType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/FormAttachmentType.java" type="org.eclipse.ptp.rm.jaxb.core.data.FormAttachmentType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.FormAttachmentType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/FormDataType.java" type="org.eclipse.ptp.rm.jaxb.core.data.FormDataType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.FormDataType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/FormLayoutType.java" type="org.eclipse.ptp.rm.jaxb.core.data.FormLayoutType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.FormLayoutType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/GridDataType.java" type="org.eclipse.ptp.rm.jaxb.core.data.GridDataType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.GridDataType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/GridLayoutType.java" type="org.eclipse.ptp.rm.jaxb.core.data.GridLayoutType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.GridLayoutType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/LaunchTabType.java" type="org.eclipse.ptp.rm.jaxb.core.data.LaunchTabType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.LaunchTabType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/LayoutDataType.java" type="org.eclipse.ptp.rm.jaxb.core.data.LayoutDataType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.LayoutDataType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/LayoutType.java" type="org.eclipse.ptp.rm.jaxb.core.data.LayoutType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.LayoutType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/LineType.java" type="org.eclipse.ptp.rm.jaxb.core.data.LineType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.LineType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/ManagedFileType.java" type="org.eclipse.ptp.rm.jaxb.core.data.ManagedFileType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.ManagedFileType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/ManagedFilesType.java" type="org.eclipse.ptp.rm.jaxb.core.data.ManagedFilesType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.ManagedFilesType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/MatchType.java" type="org.eclipse.ptp.rm.jaxb.core.data.MatchType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.MatchType"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/MonitorDriverType.java" type="org.eclipse.ptp.rm.jaxb.core.data.MonitorDriverType">
-        <filter id="1110441988">
-            <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.MonitorDriverType"/>
-            </message_arguments>
-        </filter>
-    </resource>
     <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/MonitorType.java" type="org.eclipse.ptp.rm.jaxb.core.data.MonitorType">
-        <filter id="1110441988">
+        <filter id="1143996420">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.MonitorType"/>
+                <message_argument value="getLayout()"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="layout"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="setLayout(LayoutRoot)"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/ObjectFactory.java" type="org.eclipse.ptp.rm.jaxb.core.data.ObjectFactory">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/AbslayoutType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.AbslayoutType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.ObjectFactory"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.AbslayoutType"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/PushButtonType.java" type="org.eclipse.ptp.rm.jaxb.core.data.PushButtonType">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/AlignType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.AlignType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.PushButtonType"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.AlignType"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/PutType.java" type="org.eclipse.ptp.rm.jaxb.core.data.PutType">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/ChartlayoutType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.ChartlayoutType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.PutType"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.ChartlayoutType"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/RangeType.java" type="org.eclipse.ptp.rm.jaxb.core.data.RangeType">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/ColorconstantType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.ColorconstantType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.RangeType"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.ColorconstantType"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/RegexType.java" type="org.eclipse.ptp.rm.jaxb.core.data.RegexType">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/ColordefinitionType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.ColordefinitionType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.RegexType"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.ColordefinitionType"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/ResourceManagerData.java" type="org.eclipse.ptp.rm.jaxb.core.data.ResourceManagerData">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/ColumnlayoutType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.ColumnlayoutType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.ResourceManagerData"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.ColumnlayoutType"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/RowDataType.java" type="org.eclipse.ptp.rm.jaxb.core.data.RowDataType">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/Columnsortedtype.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.Columnsortedtype">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.RowDataType"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.Columnsortedtype"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/RowLayoutType.java" type="org.eclipse.ptp.rm.jaxb.core.data.RowLayoutType">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/CommandType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.CommandType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.RowLayoutType"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.CommandType"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/ScriptType.java" type="org.eclipse.ptp.rm.jaxb.core.data.ScriptType">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/ComponentType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.ComponentType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.ScriptType"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.ComponentType"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/SetType.java" type="org.eclipse.ptp.rm.jaxb.core.data.SetType">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/ComponentlayoutType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.ComponentlayoutType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.SetType"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.ComponentlayoutType"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/SimpleCommandType.java" type="org.eclipse.ptp.rm.jaxb.core.data.SimpleCommandType">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/ContentType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.ContentType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.SimpleCommandType"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.ContentType"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/SiteType.java" type="org.eclipse.ptp.rm.jaxb.core.data.SiteType">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/DriverType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.DriverType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.SiteType"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.DriverType"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/StepType.java" type="org.eclipse.ptp.rm.jaxb.core.data.StepType">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/ElementType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.ElementType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.StepType"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.ElementType"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/TabControllerType.java" type="org.eclipse.ptp.rm.jaxb.core.data.TabControllerType">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/InfoboxlayoutColtype.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.InfoboxlayoutColtype">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.TabControllerType"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.InfoboxlayoutColtype"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/TabFolderType.java" type="org.eclipse.ptp.rm.jaxb.core.data.TabFolderType">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/InfoboxlayoutType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.InfoboxlayoutType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.TabFolderType"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.InfoboxlayoutType"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/TabItemType.java" type="org.eclipse.ptp.rm.jaxb.core.data.TabItemType">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/LayoutRequestType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.LayoutRequestType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.TabItemType"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.LayoutRequestType"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/TargetType.java" type="org.eclipse.ptp.rm.jaxb.core.data.TargetType">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/LayoutRoot.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.LayoutRoot">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.TargetType"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.LayoutRoot"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/TemplateType.java" type="org.eclipse.ptp.rm.jaxb.core.data.TemplateType">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/LayoutType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.LayoutType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.TemplateType"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.LayoutType"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/TestType.java" type="org.eclipse.ptp.rm.jaxb.core.data.TestType">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.Nodedisplayelement">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.TestType"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.Nodedisplayelement"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/ThrowType.java" type="org.eclipse.ptp.rm.jaxb.core.data.ThrowType">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement0.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.Nodedisplayelement0">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.ThrowType"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.Nodedisplayelement0"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/TokenizerType.java" type="org.eclipse.ptp.rm.jaxb.core.data.TokenizerType">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement1.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.Nodedisplayelement1">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.TokenizerType"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.Nodedisplayelement1"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/ValidatorType.java" type="org.eclipse.ptp.rm.jaxb.core.data.ValidatorType">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement2.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.Nodedisplayelement2">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.ValidatorType"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.Nodedisplayelement2"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/VarType.java" type="org.eclipse.ptp.rm.jaxb.core.data.VarType">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement3.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.Nodedisplayelement3">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.VarType"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.Nodedisplayelement3"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/VardefsType.java" type="org.eclipse.ptp.rm.jaxb.core.data.VardefsType">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement4.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.Nodedisplayelement4">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.VardefsType"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.Nodedisplayelement4"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/ViewerItemsType.java" type="org.eclipse.ptp.rm.jaxb.core.data.ViewerItemsType">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement5.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.Nodedisplayelement5">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.ViewerItemsType"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.Nodedisplayelement5"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/WidgetType.java" type="org.eclipse.ptp.rm.jaxb.core.data.WidgetType">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement6.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.Nodedisplayelement6">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.WidgetType"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.Nodedisplayelement6"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/WorkflowType.java" type="org.eclipse.ptp.rm.jaxb.core.data.WorkflowType">
-        <filter id="1110441988">
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement7.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.Nodedisplayelement7">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
             <message_arguments>
-                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.WorkflowType"/>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.Nodedisplayelement7"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement8.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.Nodedisplayelement8">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
+            <message_arguments>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.Nodedisplayelement8"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement9.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.Nodedisplayelement9">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
+            <message_arguments>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.Nodedisplayelement9"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/NodedisplaylayoutType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.NodedisplaylayoutType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
+            <message_arguments>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.NodedisplaylayoutType"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/ObjectFactory.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.ObjectFactory">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
+            <message_arguments>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.ObjectFactory"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/PaneType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.PaneType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
+            <message_arguments>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.PaneType"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/PatternMatchType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.PatternMatchType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
+            <message_arguments>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.PatternMatchType"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/PatternType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.PatternType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
+            <message_arguments>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.PatternType"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/PictureType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.PictureType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
+            <message_arguments>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.PictureType"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/RequestType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.RequestType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
+            <message_arguments>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.RequestType"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.SchemeElement">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
+            <message_arguments>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.SchemeElement"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement1.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.SchemeElement1">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
+            <message_arguments>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.SchemeElement1"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement10.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.SchemeElement10">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
+            <message_arguments>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.SchemeElement10"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement2.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.SchemeElement2">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
+            <message_arguments>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.SchemeElement2"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement3.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.SchemeElement3">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
+            <message_arguments>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.SchemeElement3"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement4.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.SchemeElement4">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
+            <message_arguments>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.SchemeElement4"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement5.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.SchemeElement5">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
+            <message_arguments>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.SchemeElement5"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement6.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.SchemeElement6">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
+            <message_arguments>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.SchemeElement6"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement7.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.SchemeElement7">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
+            <message_arguments>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.SchemeElement7"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement8.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.SchemeElement8">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
+            <message_arguments>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.SchemeElement8"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement9.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.SchemeElement9">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
+            <message_arguments>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.SchemeElement9"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.SchemeType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
+            <message_arguments>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.SchemeType"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/SelectType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.SelectType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
+            <message_arguments>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.SelectType"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/SplitlayoutType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.SplitlayoutType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
+            <message_arguments>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.SplitlayoutType"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/TablelayoutType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.TablelayoutType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
+            <message_arguments>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.TablelayoutType"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/ptp/rm/jaxb/core/data/lml/UsagebarlayoutType.java" type="org.eclipse.ptp.rm.jaxb.core.data.lml.UsagebarlayoutType">
+        <filter comment="LML JAXB classes generated by JAXB, no @since tags are added by JAXB" id="1110441988">
+            <message_arguments>
+                <message_argument value="org.eclipse.ptp.rm.jaxb.core.data.lml.UsagebarlayoutType"/>
             </message_arguments>
         </filter>
     </resource>
diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/META-INF/MANIFEST.MF b/rms/org.eclipse.ptp.rm.jaxb.core/META-INF/MANIFEST.MF
index f5cdccb..a2ac06c 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/META-INF/MANIFEST.MF
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.ptp.rm.jaxb.core;singleton:=true
-Bundle-Version: 1.1.0.qualifier
+Bundle-Version: 1.2.0.qualifier
 Bundle-Activator: org.eclipse.ptp.internal.rm.jaxb.core.JAXBCorePlugin
 Bundle-Vendor: %pluginProvider
 Require-Bundle: org.eclipse.core.runtime,
@@ -23,4 +23,5 @@
    org.eclipse.ptp.etfw.tau.ui",
  org.eclipse.ptp.internal.rm.jaxb.core.messages;x-internal:=true,
  org.eclipse.ptp.rm.jaxb.core,
- org.eclipse.ptp.rm.jaxb.core.data
+ org.eclipse.ptp.rm.jaxb.core.data,
+ org.eclipse.ptp.rm.jaxb.core.data.lml
diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/README b/rms/org.eclipse.ptp.rm.jaxb.core/README
index 42214af..3b8b9de 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/README
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/README
@@ -7,5 +7,4 @@
 #
 ###################################################################################
 
-xjc -target 2.1 -d src -p org.eclipse.ptp.rm.jaxb.core.data schema/resource_manager_type.xsd
-	
+xjc -target 2.1 -d src -b schema/namespace_bindings.xml schema/resource_manager_type.xsd
diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/pom.xml b/rms/org.eclipse.ptp.rm.jaxb.core/pom.xml
index b9da4b7..ddea9fb 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/pom.xml
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/pom.xml
@@ -6,11 +6,11 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.rm.jaxb.core</artifactId>
-  <version>1.1.0-SNAPSHOT</version>
+  <version>1.2.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/schema/namespace_bindings.xml b/rms/org.eclipse.ptp.rm.jaxb.core/schema/namespace_bindings.xml
new file mode 100644
index 0000000..9ea461e
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/schema/namespace_bindings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+
+Copyright (c) 2013 Forschungszentrum Juelich GmbH
+
+All rights reserved. This program and the accompanying materials
+
+are made available under the terms of the Eclipse Public License v1.0
+
+which accompanies this distribution and is available at
+
+http://www.eclipse.org/legal/epl-v10.html
+
+Contributors:
+
+Carsten Karbach
+-->
+<jxb:bindings version="1.0" xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
+							xmlns:xs="http://www.w3.org/2001/XMLSchema">
+<!-- To compile the resource_manager_type.xsd into JAXB classes run the following command:
+xjc -b schema/namespace_bindings.xml schema/resource_manager_type.xsd -d src
+
+with working directory = ${workspace_loc:/org.eclipse.ptp.rm.jaxb.core}
+ -->
+
+<jxb:bindings xmlns="http://eclipse.org/ptp/lml">
+  <jxb:bindings schemaLocation="http://eclipse.org/ptp/schemas/v1.1/layout.xsd">
+    <jxb:schemaBindings>
+      <jxb:package name="org.eclipse.ptp.rm.jaxb.core.data.lml"/>
+    </jxb:schemaBindings>
+  </jxb:bindings>
+</jxb:bindings>
+
+<jxb:bindings xmlns="http://eclipse.org/ptp/rm">
+  <jxb:bindings schemaLocation="resource_manager_type.xsd">
+    <jxb:schemaBindings>
+      <jxb:package name="org.eclipse.ptp.rm.jaxb.core.data"/>
+    </jxb:schemaBindings>
+  </jxb:bindings>
+</jxb:bindings>
+
+
+
+</jxb:bindings>
\ No newline at end of file
diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/schema/resource_manager_type.xsd b/rms/org.eclipse.ptp.rm.jaxb.core/schema/resource_manager_type.xsd
index 8366dd5..6d0e7c2 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/schema/resource_manager_type.xsd
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/schema/resource_manager_type.xsd
@@ -10,8 +10,12 @@
 <!-- ****************************************************************************** -->
 <xs:schema targetNamespace="http://eclipse.org/ptp/rm" 
 	xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:rm="http://eclipse.org/ptp/rm"
-	elementFormDefault="qualified" version="1.1.0">
-	<xs:element name="resource-manager-builder" type="rm:resource-manager-data"/>
+	elementFormDefault="qualified" version="1.2.0"
+	xmlns:lml="http://eclipse.org/ptp/lml">
+	
+	
+    <xs:import schemaLocation="http://eclipse.org/ptp/schemas/v1.1/layout.xsd" namespace="http://eclipse.org/ptp/lml"/>
+    <xs:element name="resource-manager-builder" type="rm:resource-manager-data"/>
 	<xs:complexType name="resource-manager-data">
 		<xs:sequence>
 			<xs:element name="site-data" minOccurs="0" type="rm:site-type"/>
@@ -699,6 +703,7 @@
 		<xs:sequence>
 			<xs:element name="driver" minOccurs="0" maxOccurs="unbounded" type="rm:monitor-driver-type"/>
 			<xs:element name="workflow" minOccurs="0" maxOccurs="unbounded" type="rm:workflow-type"/>
+			<xs:element name="layout" minOccurs="0" maxOccurs="1" type="lml:layout_root"/>
 		</xs:sequence>
 		<xs:attribute name="schedulerType" type="xs:string"/>
 		<xs:attribute name="refreshFrequencyInSeconds" type="xs:int" default="60"/>
@@ -739,4 +744,4 @@
 		<xs:attribute name="exec_after" type="xs:string"/>
 		<xs:attribute name="type" type="xs:string"/>
 	</xs:complexType>
-</xs:schema>
\ No newline at end of file
+</xs:schema>
diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/internal/rm/jaxb/core/JAXBCoreConstants.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/internal/rm/jaxb/core/JAXBCoreConstants.java
index 5c94f56..03f807e 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/internal/rm/jaxb/core/JAXBCoreConstants.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/internal/rm/jaxb/core/JAXBCoreConstants.java
@@ -12,7 +12,7 @@
 /**
  * Gathers all internal, unmodifiable string constants into a single place for convenience and in the interest of uncluttered code.
  * 
- * @since 1.1
+ * @since 1.2
  */
 public class JAXBCoreConstants {
 	public static final int UNDEFINED = -1;
diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/internal/rm/jaxb/core/JAXBExtensionUtils.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/internal/rm/jaxb/core/JAXBExtensionUtils.java
index cad912b..2a3b3a4 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/internal/rm/jaxb/core/JAXBExtensionUtils.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/internal/rm/jaxb/core/JAXBExtensionUtils.java
@@ -35,7 +35,7 @@
  * 
  * @author arossi
  * 
- * @since 1.1
+ * @since 1.2
  */
 public class JAXBExtensionUtils {
 	private static Map<String, URL> fPluginConfigurations = new TreeMap<String, URL>();
diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/internal/rm/jaxb/core/JAXBInitializationUtils.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/internal/rm/jaxb/core/JAXBInitializationUtils.java
index a6d867e..fe0fdc6 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/internal/rm/jaxb/core/JAXBInitializationUtils.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/internal/rm/jaxb/core/JAXBInitializationUtils.java
@@ -44,7 +44,7 @@
  * Convenience methods for validating and unmarshaling XML using JAXB.
  * 
  * @author arossi
- * @since 1.1
+ * @since 1.2
  * 
  */
 public class JAXBInitializationUtils {
diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/IVariableMap.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/IVariableMap.java
index af3ef01..a6ada64 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/IVariableMap.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/IVariableMap.java
@@ -24,7 +24,7 @@
  * 
  * @author arossi
  * @author Jeff Overbey - Environment Manager support
- * @since 1.1
+ * @since 1.2
  */
 public interface IVariableMap {
 
diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/AddType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/AddType.java
index fc0b08a..ace3129 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/AddType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/AddType.java
@@ -2,24 +2,25 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for add-type complex type.

+ * <p>

+ * Java class for add-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="add-type">

@@ -38,96 +39,89 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "add-type", propOrder = {

-    "entry"

-})

+@XmlType(name = "add-type", propOrder = { "entry" })

 public class AddType {

 

-    protected List<EntryType> entry;

-    @XmlAttribute(name = "field")

-    protected String field;

-    @XmlAttribute(name = "forceNewObject")

-    protected Boolean forceNewObject;

+	protected List<EntryType> entry;

+	@XmlAttribute(name = "field")

+	protected String field;

+	@XmlAttribute(name = "forceNewObject")

+	protected Boolean forceNewObject;

 

-    /**

-     * Gets the value of the entry property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the entry property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getEntry().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link EntryType }

-     * 

-     * 

-     */

-    public List<EntryType> getEntry() {

-        if (entry == null) {

-            entry = new ArrayList<EntryType>();

-        }

-        return this.entry;

-    }

+	/**

+	 * Gets the value of the entry property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the entry

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getEntry().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link EntryType }

+	 * 

+	 * 

+	 */

+	public List<EntryType> getEntry() {

+		if (entry == null) {

+			entry = new ArrayList<EntryType>();

+		}

+		return this.entry;

+	}

 

-    /**

-     * Gets the value of the field property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getField() {

-        return field;

-    }

+	/**

+	 * Gets the value of the field property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getField() {

+		return field;

+	}

 

-    /**

-     * Sets the value of the field property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setField(String value) {

-        this.field = value;

-    }

+	/**

+	 * Sets the value of the field property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setField(String value) {

+		this.field = value;

+	}

 

-    /**

-     * Gets the value of the forceNewObject property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isForceNewObject() {

-        if (forceNewObject == null) {

-            return false;

-        } else {

-            return forceNewObject;

-        }

-    }

+	/**

+	 * Gets the value of the forceNewObject property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isForceNewObject() {

+		if (forceNewObject == null) {

+			return false;

+		} else {

+			return forceNewObject;

+		}

+	}

 

-    /**

-     * Sets the value of the forceNewObject property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setForceNewObject(Boolean value) {

-        this.forceNewObject = value;

-    }

+	/**

+	 * Sets the value of the forceNewObject property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setForceNewObject(Boolean value) {

+		this.forceNewObject = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/AppendType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/AppendType.java
index 1fe33e7..e958d5b 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/AppendType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/AppendType.java
@@ -2,24 +2,25 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for append-type complex type.

+ * <p>

+ * Java class for append-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="append-type">

@@ -39,122 +40,113 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "append-type", propOrder = {

-    "entry"

-})

+@XmlType(name = "append-type", propOrder = { "entry" })

 public class AppendType {

 

-    protected List<EntryType> entry;

-    @XmlAttribute(name = "field")

-    protected String field;

-    @XmlAttribute(name = "separator")

-    protected String separator;

-    @XmlAttribute(name = "forceNewObject")

-    protected Boolean forceNewObject;

+	protected List<EntryType> entry;

+	@XmlAttribute(name = "field")

+	protected String field;

+	@XmlAttribute(name = "separator")

+	protected String separator;

+	@XmlAttribute(name = "forceNewObject")

+	protected Boolean forceNewObject;

 

-    /**

-     * Gets the value of the entry property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the entry property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getEntry().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link EntryType }

-     * 

-     * 

-     */

-    public List<EntryType> getEntry() {

-        if (entry == null) {

-            entry = new ArrayList<EntryType>();

-        }

-        return this.entry;

-    }

+	/**

+	 * Gets the value of the entry property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the entry

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getEntry().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link EntryType }

+	 * 

+	 * 

+	 */

+	public List<EntryType> getEntry() {

+		if (entry == null) {

+			entry = new ArrayList<EntryType>();

+		}

+		return this.entry;

+	}

 

-    /**

-     * Gets the value of the field property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getField() {

-        return field;

-    }

+	/**

+	 * Gets the value of the field property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getField() {

+		return field;

+	}

 

-    /**

-     * Sets the value of the field property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setField(String value) {

-        this.field = value;

-    }

+	/**

+	 * Sets the value of the field property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setField(String value) {

+		this.field = value;

+	}

 

-    /**

-     * Gets the value of the separator property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getSeparator() {

-        return separator;

-    }

+	/**

+	 * Gets the value of the separator property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getSeparator() {

+		return separator;

+	}

 

-    /**

-     * Sets the value of the separator property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setSeparator(String value) {

-        this.separator = value;

-    }

+	/**

+	 * Sets the value of the separator property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setSeparator(String value) {

+		this.separator = value;

+	}

 

-    /**

-     * Gets the value of the forceNewObject property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isForceNewObject() {

-        if (forceNewObject == null) {

-            return false;

-        } else {

-            return forceNewObject;

-        }

-    }

+	/**

+	 * Gets the value of the forceNewObject property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isForceNewObject() {

+		if (forceNewObject == null) {

+			return false;

+		} else {

+			return forceNewObject;

+		}

+	}

 

-    /**

-     * Sets the value of the forceNewObject property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setForceNewObject(Boolean value) {

-        this.forceNewObject = value;

-    }

+	/**

+	 * Sets the value of the forceNewObject property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setForceNewObject(Boolean value) {

+		this.forceNewObject = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ArgType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ArgType.java
index 5164241..bbb6b44 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ArgType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ArgType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -14,11 +13,12 @@
 import javax.xml.bind.annotation.XmlType;

 import javax.xml.bind.annotation.XmlValue;

 

-

 /**

- * <p>Java class for arg-type complex type.

+ * <p>

+ * Java class for arg-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="arg-type">

@@ -35,118 +35,108 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "arg-type", propOrder = {

-    "content"

-})

+@XmlType(name = "arg-type", propOrder = { "content" })

 public class ArgType {

 

-    @XmlValue

-    protected String content;

-    @XmlAttribute(name = "attribute")

-    protected String attribute;

-    @XmlAttribute(name = "isUndefinedIfMatches")

-    protected String isUndefinedIfMatches;

-    @XmlAttribute(name = "resolve")

-    protected Boolean resolve;

+	@XmlValue

+	protected String content;

+	@XmlAttribute(name = "attribute")

+	protected String attribute;

+	@XmlAttribute(name = "isUndefinedIfMatches")

+	protected String isUndefinedIfMatches;

+	@XmlAttribute(name = "resolve")

+	protected Boolean resolve;

 

-    /**

-     * Gets the value of the content property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getContent() {

-        return content;

-    }

+	/**

+	 * Gets the value of the content property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getContent() {

+		return content;

+	}

 

-    /**

-     * Sets the value of the content property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setContent(String value) {

-        this.content = value;

-    }

+	/**

+	 * Sets the value of the content property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setContent(String value) {

+		this.content = value;

+	}

 

-    /**

-     * Gets the value of the attribute property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getAttribute() {

-        return attribute;

-    }

+	/**

+	 * Gets the value of the attribute property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getAttribute() {

+		return attribute;

+	}

 

-    /**

-     * Sets the value of the attribute property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setAttribute(String value) {

-        this.attribute = value;

-    }

+	/**

+	 * Sets the value of the attribute property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setAttribute(String value) {

+		this.attribute = value;

+	}

 

-    /**

-     * Gets the value of the isUndefinedIfMatches property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getIsUndefinedIfMatches() {

-        return isUndefinedIfMatches;

-    }

+	/**

+	 * Gets the value of the isUndefinedIfMatches property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getIsUndefinedIfMatches() {

+		return isUndefinedIfMatches;

+	}

 

-    /**

-     * Sets the value of the isUndefinedIfMatches property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setIsUndefinedIfMatches(String value) {

-        this.isUndefinedIfMatches = value;

-    }

+	/**

+	 * Sets the value of the isUndefinedIfMatches property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setIsUndefinedIfMatches(String value) {

+		this.isUndefinedIfMatches = value;

+	}

 

-    /**

-     * Gets the value of the resolve property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isResolve() {

-        if (resolve == null) {

-            return true;

-        } else {

-            return resolve;

-        }

-    }

+	/**

+	 * Gets the value of the resolve property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isResolve() {

+		if (resolve == null) {

+			return true;

+		} else {

+			return resolve;

+		}

+	}

 

-    /**

-     * Sets the value of the resolve property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setResolve(Boolean value) {

-        this.resolve = value;

-    }

+	/**

+	 * Sets the value of the resolve property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setResolve(Boolean value) {

+		this.resolve = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/AttributeType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/AttributeType.java
index a9ac179..7caea7c 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/AttributeType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/AttributeType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -14,11 +13,12 @@
 import javax.xml.bind.annotation.XmlElement;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for attribute-type complex type.

+ * <p>

+ * Java class for attribute-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="attribute-type">

@@ -51,466 +51,428 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "attribute-type", propOrder = {

-    "description",

-    "tooltip",

-    "choice",

-    "translateChoiceAs",

-    "itemsFrom",

-    "_default",

-    "value",

-    "linkValueTo",

-    "validator"

-})

+@XmlType(name = "attribute-type", propOrder = { "description", "tooltip", "choice", "translateChoiceAs", "itemsFrom", "_default",

+		"value", "linkValueTo", "validator" })

 public class AttributeType {

 

-    protected String description;

-    protected String tooltip;

-    protected String choice;

-    protected String translateChoiceAs;

-    @XmlElement(name = "items-from")

-    protected String itemsFrom;

-    @XmlElement(name = "default")

-    protected String _default;

-    protected Object value;

-    @XmlElement(name = "link-value-to")

-    protected String linkValueTo;

-    protected ValidatorType validator;

-    @XmlAttribute(name = "name", required = true)

-    protected String name;

-    @XmlAttribute(name = "type")

-    protected String type;

-    @XmlAttribute(name = "visible")

-    protected Boolean visible;

-    @XmlAttribute(name = "status")

-    protected String status;

-    @XmlAttribute(name = "readOnly")

-    protected Boolean readOnly;

-    @XmlAttribute(name = "translateBooleanAs")

-    protected String translateBooleanAs;

-    @XmlAttribute(name = "min")

-    protected Integer min;

-    @XmlAttribute(name = "max")

-    protected Integer max;

+	protected String description;

+	protected String tooltip;

+	protected String choice;

+	/**

+	 * @since 1.2

+	 */

+	protected String translateChoiceAs;

+	@XmlElement(name = "items-from")

+	protected String itemsFrom;

+	@XmlElement(name = "default")

+	protected String _default;

+	protected Object value;

+	@XmlElement(name = "link-value-to")

+	protected String linkValueTo;

+	protected ValidatorType validator;

+	@XmlAttribute(name = "name", required = true)

+	protected String name;

+	@XmlAttribute(name = "type")

+	protected String type;

+	@XmlAttribute(name = "visible")

+	protected Boolean visible;

+	@XmlAttribute(name = "status")

+	protected String status;

+	@XmlAttribute(name = "readOnly")

+	protected Boolean readOnly;

+	@XmlAttribute(name = "translateBooleanAs")

+	protected String translateBooleanAs;

+	@XmlAttribute(name = "min")

+	protected Integer min;

+	@XmlAttribute(name = "max")

+	protected Integer max;

 

-    /**

-     * Gets the value of the description property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getDescription() {

-        return description;

-    }

+	/**

+	 * Gets the value of the description property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getDescription() {

+		return description;

+	}

 

-    /**

-     * Sets the value of the description property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setDescription(String value) {

-        this.description = value;

-    }

+	/**

+	 * Sets the value of the description property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setDescription(String value) {

+		this.description = value;

+	}

 

-    /**

-     * Gets the value of the tooltip property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getTooltip() {

-        return tooltip;

-    }

+	/**

+	 * Gets the value of the tooltip property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getTooltip() {

+		return tooltip;

+	}

 

-    /**

-     * Sets the value of the tooltip property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setTooltip(String value) {

-        this.tooltip = value;

-    }

+	/**

+	 * Sets the value of the tooltip property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setTooltip(String value) {

+		this.tooltip = value;

+	}

 

-    /**

-     * Gets the value of the choice property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getChoice() {

-        return choice;

-    }

+	/**

+	 * Gets the value of the choice property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getChoice() {

+		return choice;

+	}

 

-    /**

-     * Sets the value of the choice property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setChoice(String value) {

-        this.choice = value;

-    }

+	/**

+	 * Sets the value of the choice property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setChoice(String value) {

+		this.choice = value;

+	}

 

-    /**

-     * Gets the value of the translateChoiceAs property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getTranslateChoiceAs() {

-        return translateChoiceAs;

-    }

+	/**

+	 * Gets the value of the translateChoiceAs property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * @since 1.2

+	 * 

+	 */

+	public String getTranslateChoiceAs() {

+		return translateChoiceAs;

+	}

 

-    /**

-     * Sets the value of the translateChoiceAs property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setTranslateChoiceAs(String value) {

-        this.translateChoiceAs = value;

-    }

+	/**

+	 * Sets the value of the translateChoiceAs property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * @since 1.2

+	 * 

+	 */

+	public void setTranslateChoiceAs(String value) {

+		this.translateChoiceAs = value;

+	}

 

-    /**

-     * Gets the value of the itemsFrom property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getItemsFrom() {

-        return itemsFrom;

-    }

+	/**

+	 * Gets the value of the itemsFrom property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getItemsFrom() {

+		return itemsFrom;

+	}

 

-    /**

-     * Sets the value of the itemsFrom property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setItemsFrom(String value) {

-        this.itemsFrom = value;

-    }

+	/**

+	 * Sets the value of the itemsFrom property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setItemsFrom(String value) {

+		this.itemsFrom = value;

+	}

 

-    /**

-     * Gets the value of the default property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getDefault() {

-        return _default;

-    }

+	/**

+	 * Gets the value of the default property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getDefault() {

+		return _default;

+	}

 

-    /**

-     * Sets the value of the default property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setDefault(String value) {

-        this._default = value;

-    }

+	/**

+	 * Sets the value of the default property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setDefault(String value) {

+		this._default = value;

+	}

 

-    /**

-     * Gets the value of the value property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Object }

-     *     

-     */

-    public Object getValue() {

-        return value;

-    }

+	/**

+	 * Gets the value of the value property.

+	 * 

+	 * @return

+	 *         possible object is {@link Object }

+	 * 

+	 */

+	public Object getValue() {

+		return value;

+	}

 

-    /**

-     * Sets the value of the value property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Object }

-     *     

-     */

-    public void setValue(Object value) {

-        this.value = value;

-    }

+	/**

+	 * Sets the value of the value property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Object }

+	 * 

+	 */

+	public void setValue(Object value) {

+		this.value = value;

+	}

 

-    /**

-     * Gets the value of the linkValueTo property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getLinkValueTo() {

-        return linkValueTo;

-    }

+	/**

+	 * Gets the value of the linkValueTo property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getLinkValueTo() {

+		return linkValueTo;

+	}

 

-    /**

-     * Sets the value of the linkValueTo property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setLinkValueTo(String value) {

-        this.linkValueTo = value;

-    }

+	/**

+	 * Sets the value of the linkValueTo property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setLinkValueTo(String value) {

+		this.linkValueTo = value;

+	}

 

-    /**

-     * Gets the value of the validator property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link ValidatorType }

-     *     

-     */

-    public ValidatorType getValidator() {

-        return validator;

-    }

+	/**

+	 * Gets the value of the validator property.

+	 * 

+	 * @return

+	 *         possible object is {@link ValidatorType }

+	 * 

+	 */

+	public ValidatorType getValidator() {

+		return validator;

+	}

 

-    /**

-     * Sets the value of the validator property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link ValidatorType }

-     *     

-     */

-    public void setValidator(ValidatorType value) {

-        this.validator = value;

-    }

+	/**

+	 * Sets the value of the validator property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link ValidatorType }

+	 * 

+	 */

+	public void setValidator(ValidatorType value) {

+		this.validator = value;

+	}

 

-    /**

-     * Gets the value of the name property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getName() {

-        return name;

-    }

+	/**

+	 * Gets the value of the name property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getName() {

+		return name;

+	}

 

-    /**

-     * Sets the value of the name property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setName(String value) {

-        this.name = value;

-    }

+	/**

+	 * Sets the value of the name property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setName(String value) {

+		this.name = value;

+	}

 

-    /**

-     * Gets the value of the type property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getType() {

-        if (type == null) {

-            return "java.lang.String";

-        } else {

-            return type;

-        }

-    }

+	/**

+	 * Gets the value of the type property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getType() {

+		if (type == null) {

+			return "java.lang.String";

+		} else {

+			return type;

+		}

+	}

 

-    /**

-     * Sets the value of the type property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setType(String value) {

-        this.type = value;

-    }

+	/**

+	 * Sets the value of the type property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setType(String value) {

+		this.type = value;

+	}

 

-    /**

-     * Gets the value of the visible property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isVisible() {

-        if (visible == null) {

-            return true;

-        } else {

-            return visible;

-        }

-    }

+	/**

+	 * Gets the value of the visible property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isVisible() {

+		if (visible == null) {

+			return true;

+		} else {

+			return visible;

+		}

+	}

 

-    /**

-     * Sets the value of the visible property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setVisible(Boolean value) {

-        this.visible = value;

-    }

+	/**

+	 * Sets the value of the visible property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setVisible(Boolean value) {

+		this.visible = value;

+	}

 

-    /**

-     * Gets the value of the status property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getStatus() {

-        return status;

-    }

+	/**

+	 * Gets the value of the status property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getStatus() {

+		return status;

+	}

 

-    /**

-     * Sets the value of the status property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setStatus(String value) {

-        this.status = value;

-    }

+	/**

+	 * Sets the value of the status property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setStatus(String value) {

+		this.status = value;

+	}

 

-    /**

-     * Gets the value of the readOnly property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isReadOnly() {

-        if (readOnly == null) {

-            return false;

-        } else {

-            return readOnly;

-        }

-    }

+	/**

+	 * Gets the value of the readOnly property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isReadOnly() {

+		if (readOnly == null) {

+			return false;

+		} else {

+			return readOnly;

+		}

+	}

 

-    /**

-     * Sets the value of the readOnly property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setReadOnly(Boolean value) {

-        this.readOnly = value;

-    }

+	/**

+	 * Sets the value of the readOnly property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setReadOnly(Boolean value) {

+		this.readOnly = value;

+	}

 

-    /**

-     * Gets the value of the translateBooleanAs property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getTranslateBooleanAs() {

-        return translateBooleanAs;

-    }

+	/**

+	 * Gets the value of the translateBooleanAs property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getTranslateBooleanAs() {

+		return translateBooleanAs;

+	}

 

-    /**

-     * Sets the value of the translateBooleanAs property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setTranslateBooleanAs(String value) {

-        this.translateBooleanAs = value;

-    }

+	/**

+	 * Sets the value of the translateBooleanAs property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setTranslateBooleanAs(String value) {

+		this.translateBooleanAs = value;

+	}

 

-    /**

-     * Gets the value of the min property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getMin() {

-        return min;

-    }

+	/**

+	 * Gets the value of the min property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getMin() {

+		return min;

+	}

 

-    /**

-     * Sets the value of the min property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setMin(Integer value) {

-        this.min = value;

-    }

+	/**

+	 * Sets the value of the min property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setMin(Integer value) {

+		this.min = value;

+	}

 

-    /**

-     * Gets the value of the max property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getMax() {

-        return max;

-    }

+	/**

+	 * Gets the value of the max property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getMax() {

+		return max;

+	}

 

-    /**

-     * Sets the value of the max property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setMax(Integer value) {

-        this.max = value;

-    }

+	/**

+	 * Sets the value of the max property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setMax(Integer value) {

+		this.max = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/AttributeViewerType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/AttributeViewerType.java
index 8b5aa25..0618191 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/AttributeViewerType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/AttributeViewerType.java
@@ -2,25 +2,26 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlElement;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for attribute-viewer-type complex type.

+ * <p>

+ * Java class for attribute-viewer-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="attribute-viewer-type">

@@ -58,432 +59,396 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "attribute-viewer-type", propOrder = {

-    "layoutData",

-    "layout",

-    "label",

-    "columnData",

-    "items",

-    "value",

-    "controlState"

-})

+@XmlType(name = "attribute-viewer-type", propOrder = { "layoutData", "layout", "label", "columnData", "items", "value",

+		"controlState" })

 public class AttributeViewerType {

 

-    @XmlElement(name = "layout-data")

-    protected LayoutDataType layoutData;

-    protected LayoutType layout;

-    protected String label;

-    @XmlElement(name = "column-data")

-    protected List<ColumnDataType> columnData;

-    @XmlElement(required = true)

-    protected ViewerItemsType items;

-    protected TemplateType value;

-    @XmlElement(name = "control-state")

-    protected ControlStateType controlState;

-    @XmlAttribute(name = "type")

-    protected String type;

-    @XmlAttribute(name = "name")

-    protected String name;

-    @XmlAttribute(name = "initialAllChecked")

-    protected Boolean initialAllChecked;

-    @XmlAttribute(name = "sort")

-    protected Boolean sort;

-    @XmlAttribute(name = "headerVisible")

-    protected Boolean headerVisible;

-    @XmlAttribute(name = "linesVisible")

-    protected Boolean linesVisible;

-    @XmlAttribute(name = "tooltipEnabled")

-    protected Boolean tooltipEnabled;

-    @XmlAttribute(name = "style")

-    protected String style;

+	@XmlElement(name = "layout-data")

+	protected LayoutDataType layoutData;

+	protected LayoutType layout;

+	protected String label;

+	@XmlElement(name = "column-data")

+	protected List<ColumnDataType> columnData;

+	@XmlElement(required = true)

+	protected ViewerItemsType items;

+	protected TemplateType value;

+	@XmlElement(name = "control-state")

+	protected ControlStateType controlState;

+	@XmlAttribute(name = "type")

+	protected String type;

+	@XmlAttribute(name = "name")

+	protected String name;

+	@XmlAttribute(name = "initialAllChecked")

+	protected Boolean initialAllChecked;

+	@XmlAttribute(name = "sort")

+	protected Boolean sort;

+	@XmlAttribute(name = "headerVisible")

+	protected Boolean headerVisible;

+	@XmlAttribute(name = "linesVisible")

+	protected Boolean linesVisible;

+	@XmlAttribute(name = "tooltipEnabled")

+	protected Boolean tooltipEnabled;

+	@XmlAttribute(name = "style")

+	protected String style;

 

-    /**

-     * Gets the value of the layoutData property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link LayoutDataType }

-     *     

-     */

-    public LayoutDataType getLayoutData() {

-        return layoutData;

-    }

+	/**

+	 * Gets the value of the layoutData property.

+	 * 

+	 * @return

+	 *         possible object is {@link LayoutDataType }

+	 * 

+	 */

+	public LayoutDataType getLayoutData() {

+		return layoutData;

+	}

 

-    /**

-     * Sets the value of the layoutData property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link LayoutDataType }

-     *     

-     */

-    public void setLayoutData(LayoutDataType value) {

-        this.layoutData = value;

-    }

+	/**

+	 * Sets the value of the layoutData property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link LayoutDataType }

+	 * 

+	 */

+	public void setLayoutData(LayoutDataType value) {

+		this.layoutData = value;

+	}

 

-    /**

-     * Gets the value of the layout property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link LayoutType }

-     *     

-     */

-    public LayoutType getLayout() {

-        return layout;

-    }

+	/**

+	 * Gets the value of the layout property.

+	 * 

+	 * @return

+	 *         possible object is {@link LayoutType }

+	 * 

+	 */

+	public LayoutType getLayout() {

+		return layout;

+	}

 

-    /**

-     * Sets the value of the layout property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link LayoutType }

-     *     

-     */

-    public void setLayout(LayoutType value) {

-        this.layout = value;

-    }

+	/**

+	 * Sets the value of the layout property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link LayoutType }

+	 * 

+	 */

+	public void setLayout(LayoutType value) {

+		this.layout = value;

+	}

 

-    /**

-     * Gets the value of the label property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getLabel() {

-        return label;

-    }

+	/**

+	 * Gets the value of the label property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getLabel() {

+		return label;

+	}

 

-    /**

-     * Sets the value of the label property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setLabel(String value) {

-        this.label = value;

-    }

+	/**

+	 * Sets the value of the label property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setLabel(String value) {

+		this.label = value;

+	}

 

-    /**

-     * Gets the value of the columnData property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the columnData property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getColumnData().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link ColumnDataType }

-     * 

-     * 

-     */

-    public List<ColumnDataType> getColumnData() {

-        if (columnData == null) {

-            columnData = new ArrayList<ColumnDataType>();

-        }

-        return this.columnData;

-    }

+	/**

+	 * Gets the value of the columnData property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the columnData

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getColumnData().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link ColumnDataType }

+	 * 

+	 * 

+	 */

+	public List<ColumnDataType> getColumnData() {

+		if (columnData == null) {

+			columnData = new ArrayList<ColumnDataType>();

+		}

+		return this.columnData;

+	}

 

-    /**

-     * Gets the value of the items property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link ViewerItemsType }

-     *     

-     */

-    public ViewerItemsType getItems() {

-        return items;

-    }

+	/**

+	 * Gets the value of the items property.

+	 * 

+	 * @return

+	 *         possible object is {@link ViewerItemsType }

+	 * 

+	 */

+	public ViewerItemsType getItems() {

+		return items;

+	}

 

-    /**

-     * Sets the value of the items property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link ViewerItemsType }

-     *     

-     */

-    public void setItems(ViewerItemsType value) {

-        this.items = value;

-    }

+	/**

+	 * Sets the value of the items property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link ViewerItemsType }

+	 * 

+	 */

+	public void setItems(ViewerItemsType value) {

+		this.items = value;

+	}

 

-    /**

-     * Gets the value of the value property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link TemplateType }

-     *     

-     */

-    public TemplateType getValue() {

-        return value;

-    }

+	/**

+	 * Gets the value of the value property.

+	 * 

+	 * @return

+	 *         possible object is {@link TemplateType }

+	 * 

+	 */

+	public TemplateType getValue() {

+		return value;

+	}

 

-    /**

-     * Sets the value of the value property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link TemplateType }

-     *     

-     */

-    public void setValue(TemplateType value) {

-        this.value = value;

-    }

+	/**

+	 * Sets the value of the value property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link TemplateType }

+	 * 

+	 */

+	public void setValue(TemplateType value) {

+		this.value = value;

+	}

 

-    /**

-     * Gets the value of the controlState property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link ControlStateType }

-     *     

-     */

-    public ControlStateType getControlState() {

-        return controlState;

-    }

+	/**

+	 * Gets the value of the controlState property.

+	 * 

+	 * @return

+	 *         possible object is {@link ControlStateType }

+	 * 

+	 */

+	public ControlStateType getControlState() {

+		return controlState;

+	}

 

-    /**

-     * Sets the value of the controlState property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link ControlStateType }

-     *     

-     */

-    public void setControlState(ControlStateType value) {

-        this.controlState = value;

-    }

+	/**

+	 * Sets the value of the controlState property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link ControlStateType }

+	 * 

+	 */

+	public void setControlState(ControlStateType value) {

+		this.controlState = value;

+	}

 

-    /**

-     * Gets the value of the type property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getType() {

-        if (type == null) {

-            return "table";

-        } else {

-            return type;

-        }

-    }

+	/**

+	 * Gets the value of the type property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getType() {

+		if (type == null) {

+			return "table";

+		} else {

+			return type;

+		}

+	}

 

-    /**

-     * Sets the value of the type property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setType(String value) {

-        this.type = value;

-    }

+	/**

+	 * Sets the value of the type property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setType(String value) {

+		this.type = value;

+	}

 

-    /**

-     * Gets the value of the name property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getName() {

-        return name;

-    }

+	/**

+	 * Gets the value of the name property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getName() {

+		return name;

+	}

 

-    /**

-     * Sets the value of the name property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setName(String value) {

-        this.name = value;

-    }

+	/**

+	 * Sets the value of the name property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setName(String value) {

+		this.name = value;

+	}

 

-    /**

-     * Gets the value of the initialAllChecked property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isInitialAllChecked() {

-        if (initialAllChecked == null) {

-            return true;

-        } else {

-            return initialAllChecked;

-        }

-    }

+	/**

+	 * Gets the value of the initialAllChecked property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isInitialAllChecked() {

+		if (initialAllChecked == null) {

+			return true;

+		} else {

+			return initialAllChecked;

+		}

+	}

 

-    /**

-     * Sets the value of the initialAllChecked property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setInitialAllChecked(Boolean value) {

-        this.initialAllChecked = value;

-    }

+	/**

+	 * Sets the value of the initialAllChecked property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setInitialAllChecked(Boolean value) {

+		this.initialAllChecked = value;

+	}

 

-    /**

-     * Gets the value of the sort property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isSort() {

-        if (sort == null) {

-            return true;

-        } else {

-            return sort;

-        }

-    }

+	/**

+	 * Gets the value of the sort property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isSort() {

+		if (sort == null) {

+			return true;

+		} else {

+			return sort;

+		}

+	}

 

-    /**

-     * Sets the value of the sort property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setSort(Boolean value) {

-        this.sort = value;

-    }

+	/**

+	 * Sets the value of the sort property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setSort(Boolean value) {

+		this.sort = value;

+	}

 

-    /**

-     * Gets the value of the headerVisible property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isHeaderVisible() {

-        if (headerVisible == null) {

-            return true;

-        } else {

-            return headerVisible;

-        }

-    }

+	/**

+	 * Gets the value of the headerVisible property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isHeaderVisible() {

+		if (headerVisible == null) {

+			return true;

+		} else {

+			return headerVisible;

+		}

+	}

 

-    /**

-     * Sets the value of the headerVisible property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setHeaderVisible(Boolean value) {

-        this.headerVisible = value;

-    }

+	/**

+	 * Sets the value of the headerVisible property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setHeaderVisible(Boolean value) {

+		this.headerVisible = value;

+	}

 

-    /**

-     * Gets the value of the linesVisible property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isLinesVisible() {

-        if (linesVisible == null) {

-            return true;

-        } else {

-            return linesVisible;

-        }

-    }

+	/**

+	 * Gets the value of the linesVisible property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isLinesVisible() {

+		if (linesVisible == null) {

+			return true;

+		} else {

+			return linesVisible;

+		}

+	}

 

-    /**

-     * Sets the value of the linesVisible property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setLinesVisible(Boolean value) {

-        this.linesVisible = value;

-    }

+	/**

+	 * Sets the value of the linesVisible property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setLinesVisible(Boolean value) {

+		this.linesVisible = value;

+	}

 

-    /**

-     * Gets the value of the tooltipEnabled property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isTooltipEnabled() {

-        if (tooltipEnabled == null) {

-            return true;

-        } else {

-            return tooltipEnabled;

-        }

-    }

+	/**

+	 * Gets the value of the tooltipEnabled property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isTooltipEnabled() {

+		if (tooltipEnabled == null) {

+			return true;

+		} else {

+			return tooltipEnabled;

+		}

+	}

 

-    /**

-     * Sets the value of the tooltipEnabled property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setTooltipEnabled(Boolean value) {

-        this.tooltipEnabled = value;

-    }

+	/**

+	 * Sets the value of the tooltipEnabled property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setTooltipEnabled(Boolean value) {

+		this.tooltipEnabled = value;

+	}

 

-    /**

-     * Gets the value of the style property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getStyle() {

-        return style;

-    }

+	/**

+	 * Gets the value of the style property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getStyle() {

+		return style;

+	}

 

-    /**

-     * Sets the value of the style property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setStyle(String value) {

-        this.style = value;

-    }

+	/**

+	 * Sets the value of the style property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setStyle(String value) {

+		this.style = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/BrowseType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/BrowseType.java
index 6ddb85a..22f7540 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/BrowseType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/BrowseType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -14,11 +13,12 @@
 import javax.xml.bind.annotation.XmlElement;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for browse-type complex type.

+ * <p>

+ * Java class for browse-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="browse-type">

@@ -49,419 +49,383 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "browse-type", propOrder = {

-    "textLayoutData",

-    "buttonLayoutData",

-    "font",

-    "tooltip",

-    "textControlState",

-    "buttonControlState"

-})

+@XmlType(name = "browse-type", propOrder = { "textLayoutData", "buttonLayoutData", "font", "tooltip", "textControlState",

+		"buttonControlState" })

 public class BrowseType {

 

-    @XmlElement(name = "text-layout-data")

-    protected LayoutDataType textLayoutData;

-    @XmlElement(name = "button-layout-data")

-    protected LayoutDataType buttonLayoutData;

-    protected FontType font;

-    protected String tooltip;

-    @XmlElement(name = "text-control-state")

-    protected ControlStateType textControlState;

-    @XmlElement(name = "button-control-state")

-    protected ControlStateType buttonControlState;

-    @XmlAttribute(name = "title")

-    protected String title;

-    @XmlAttribute(name = "textStyle")

-    protected String textStyle;

-    @XmlAttribute(name = "directory")

-    protected Boolean directory;

-    @XmlAttribute(name = "uri")

-    protected Boolean uri;

-    @XmlAttribute(name = "localOnly")

-    protected Boolean localOnly;

-    @XmlAttribute(name = "readOnly")

-    protected Boolean readOnly;

-    @XmlAttribute(name = "attribute")

-    protected String attribute;

-    @XmlAttribute(name = "foreground")

-    protected String foreground;

-    @XmlAttribute(name = "background")

-    protected String background;

+	@XmlElement(name = "text-layout-data")

+	protected LayoutDataType textLayoutData;

+	@XmlElement(name = "button-layout-data")

+	protected LayoutDataType buttonLayoutData;

+	protected FontType font;

+	protected String tooltip;

+	@XmlElement(name = "text-control-state")

+	protected ControlStateType textControlState;

+	@XmlElement(name = "button-control-state")

+	protected ControlStateType buttonControlState;

+	@XmlAttribute(name = "title")

+	protected String title;

+	@XmlAttribute(name = "textStyle")

+	protected String textStyle;

+	@XmlAttribute(name = "directory")

+	protected Boolean directory;

+	@XmlAttribute(name = "uri")

+	protected Boolean uri;

+	@XmlAttribute(name = "localOnly")

+	protected Boolean localOnly;

+	@XmlAttribute(name = "readOnly")

+	protected Boolean readOnly;

+	@XmlAttribute(name = "attribute")

+	protected String attribute;

+	@XmlAttribute(name = "foreground")

+	protected String foreground;

+	@XmlAttribute(name = "background")

+	protected String background;

 

-    /**

-     * Gets the value of the textLayoutData property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link LayoutDataType }

-     *     

-     */

-    public LayoutDataType getTextLayoutData() {

-        return textLayoutData;

-    }

+	/**

+	 * Gets the value of the textLayoutData property.

+	 * 

+	 * @return

+	 *         possible object is {@link LayoutDataType }

+	 * 

+	 */

+	public LayoutDataType getTextLayoutData() {

+		return textLayoutData;

+	}

 

-    /**

-     * Sets the value of the textLayoutData property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link LayoutDataType }

-     *     

-     */

-    public void setTextLayoutData(LayoutDataType value) {

-        this.textLayoutData = value;

-    }

+	/**

+	 * Sets the value of the textLayoutData property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link LayoutDataType }

+	 * 

+	 */

+	public void setTextLayoutData(LayoutDataType value) {

+		this.textLayoutData = value;

+	}

 

-    /**

-     * Gets the value of the buttonLayoutData property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link LayoutDataType }

-     *     

-     */

-    public LayoutDataType getButtonLayoutData() {

-        return buttonLayoutData;

-    }

+	/**

+	 * Gets the value of the buttonLayoutData property.

+	 * 

+	 * @return

+	 *         possible object is {@link LayoutDataType }

+	 * 

+	 */

+	public LayoutDataType getButtonLayoutData() {

+		return buttonLayoutData;

+	}

 

-    /**

-     * Sets the value of the buttonLayoutData property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link LayoutDataType }

-     *     

-     */

-    public void setButtonLayoutData(LayoutDataType value) {

-        this.buttonLayoutData = value;

-    }

+	/**

+	 * Sets the value of the buttonLayoutData property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link LayoutDataType }

+	 * 

+	 */

+	public void setButtonLayoutData(LayoutDataType value) {

+		this.buttonLayoutData = value;

+	}

 

-    /**

-     * Gets the value of the font property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link FontType }

-     *     

-     */

-    public FontType getFont() {

-        return font;

-    }

+	/**

+	 * Gets the value of the font property.

+	 * 

+	 * @return

+	 *         possible object is {@link FontType }

+	 * 

+	 */

+	public FontType getFont() {

+		return font;

+	}

 

-    /**

-     * Sets the value of the font property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link FontType }

-     *     

-     */

-    public void setFont(FontType value) {

-        this.font = value;

-    }

+	/**

+	 * Sets the value of the font property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link FontType }

+	 * 

+	 */

+	public void setFont(FontType value) {

+		this.font = value;

+	}

 

-    /**

-     * Gets the value of the tooltip property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getTooltip() {

-        return tooltip;

-    }

+	/**

+	 * Gets the value of the tooltip property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getTooltip() {

+		return tooltip;

+	}

 

-    /**

-     * Sets the value of the tooltip property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setTooltip(String value) {

-        this.tooltip = value;

-    }

+	/**

+	 * Sets the value of the tooltip property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setTooltip(String value) {

+		this.tooltip = value;

+	}

 

-    /**

-     * Gets the value of the textControlState property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link ControlStateType }

-     *     

-     */

-    public ControlStateType getTextControlState() {

-        return textControlState;

-    }

+	/**

+	 * Gets the value of the textControlState property.

+	 * 

+	 * @return

+	 *         possible object is {@link ControlStateType }

+	 * 

+	 */

+	public ControlStateType getTextControlState() {

+		return textControlState;

+	}

 

-    /**

-     * Sets the value of the textControlState property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link ControlStateType }

-     *     

-     */

-    public void setTextControlState(ControlStateType value) {

-        this.textControlState = value;

-    }

+	/**

+	 * Sets the value of the textControlState property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link ControlStateType }

+	 * 

+	 */

+	public void setTextControlState(ControlStateType value) {

+		this.textControlState = value;

+	}

 

-    /**

-     * Gets the value of the buttonControlState property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link ControlStateType }

-     *     

-     */

-    public ControlStateType getButtonControlState() {

-        return buttonControlState;

-    }

+	/**

+	 * Gets the value of the buttonControlState property.

+	 * 

+	 * @return

+	 *         possible object is {@link ControlStateType }

+	 * 

+	 */

+	public ControlStateType getButtonControlState() {

+		return buttonControlState;

+	}

 

-    /**

-     * Sets the value of the buttonControlState property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link ControlStateType }

-     *     

-     */

-    public void setButtonControlState(ControlStateType value) {

-        this.buttonControlState = value;

-    }

+	/**

+	 * Sets the value of the buttonControlState property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link ControlStateType }

+	 * 

+	 */

+	public void setButtonControlState(ControlStateType value) {

+		this.buttonControlState = value;

+	}

 

-    /**

-     * Gets the value of the title property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getTitle() {

-        return title;

-    }

+	/**

+	 * Gets the value of the title property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getTitle() {

+		return title;

+	}

 

-    /**

-     * Sets the value of the title property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setTitle(String value) {

-        this.title = value;

-    }

+	/**

+	 * Sets the value of the title property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setTitle(String value) {

+		this.title = value;

+	}

 

-    /**

-     * Gets the value of the textStyle property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getTextStyle() {

-        return textStyle;

-    }

+	/**

+	 * Gets the value of the textStyle property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getTextStyle() {

+		return textStyle;

+	}

 

-    /**

-     * Sets the value of the textStyle property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setTextStyle(String value) {

-        this.textStyle = value;

-    }

+	/**

+	 * Sets the value of the textStyle property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setTextStyle(String value) {

+		this.textStyle = value;

+	}

 

-    /**

-     * Gets the value of the directory property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isDirectory() {

-        if (directory == null) {

-            return false;

-        } else {

-            return directory;

-        }

-    }

+	/**

+	 * Gets the value of the directory property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isDirectory() {

+		if (directory == null) {

+			return false;

+		} else {

+			return directory;

+		}

+	}

 

-    /**

-     * Sets the value of the directory property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setDirectory(Boolean value) {

-        this.directory = value;

-    }

+	/**

+	 * Sets the value of the directory property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setDirectory(Boolean value) {

+		this.directory = value;

+	}

 

-    /**

-     * Gets the value of the uri property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isUri() {

-        if (uri == null) {

-            return false;

-        } else {

-            return uri;

-        }

-    }

+	/**

+	 * Gets the value of the uri property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isUri() {

+		if (uri == null) {

+			return false;

+		} else {

+			return uri;

+		}

+	}

 

-    /**

-     * Sets the value of the uri property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setUri(Boolean value) {

-        this.uri = value;

-    }

+	/**

+	 * Sets the value of the uri property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setUri(Boolean value) {

+		this.uri = value;

+	}

 

-    /**

-     * Gets the value of the localOnly property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isLocalOnly() {

-        if (localOnly == null) {

-            return false;

-        } else {

-            return localOnly;

-        }

-    }

+	/**

+	 * Gets the value of the localOnly property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isLocalOnly() {

+		if (localOnly == null) {

+			return false;

+		} else {

+			return localOnly;

+		}

+	}

 

-    /**

-     * Sets the value of the localOnly property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setLocalOnly(Boolean value) {

-        this.localOnly = value;

-    }

+	/**

+	 * Sets the value of the localOnly property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setLocalOnly(Boolean value) {

+		this.localOnly = value;

+	}

 

-    /**

-     * Gets the value of the readOnly property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isReadOnly() {

-        if (readOnly == null) {

-            return false;

-        } else {

-            return readOnly;

-        }

-    }

+	/**

+	 * Gets the value of the readOnly property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isReadOnly() {

+		if (readOnly == null) {

+			return false;

+		} else {

+			return readOnly;

+		}

+	}

 

-    /**

-     * Sets the value of the readOnly property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setReadOnly(Boolean value) {

-        this.readOnly = value;

-    }

+	/**

+	 * Sets the value of the readOnly property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setReadOnly(Boolean value) {

+		this.readOnly = value;

+	}

 

-    /**

-     * Gets the value of the attribute property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getAttribute() {

-        return attribute;

-    }

+	/**

+	 * Gets the value of the attribute property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getAttribute() {

+		return attribute;

+	}

 

-    /**

-     * Sets the value of the attribute property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setAttribute(String value) {

-        this.attribute = value;

-    }

+	/**

+	 * Sets the value of the attribute property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setAttribute(String value) {

+		this.attribute = value;

+	}

 

-    /**

-     * Gets the value of the foreground property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getForeground() {

-        return foreground;

-    }

+	/**

+	 * Gets the value of the foreground property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getForeground() {

+		return foreground;

+	}

 

-    /**

-     * Sets the value of the foreground property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setForeground(String value) {

-        this.foreground = value;

-    }

+	/**

+	 * Sets the value of the foreground property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setForeground(String value) {

+		this.foreground = value;

+	}

 

-    /**

-     * Gets the value of the background property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getBackground() {

-        return background;

-    }

+	/**

+	 * Gets the value of the background property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getBackground() {

+		return background;

+	}

 

-    /**

-     * Sets the value of the background property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setBackground(String value) {

-        this.background = value;

-    }

+	/**

+	 * Sets the value of the background property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setBackground(String value) {

+		this.background = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ButtonActionType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ButtonActionType.java
index 5eab2bc..119f3ee 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ButtonActionType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ButtonActionType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -14,11 +13,12 @@
 import javax.xml.bind.annotation.XmlElement;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for button-action-type complex type.

+ * <p>

+ * Java class for button-action-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="button-action-type">

@@ -37,92 +37,84 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "button-action-type", propOrder = {

-    "action"

-})

+@XmlType(name = "button-action-type", propOrder = { "action" })

 public class ButtonActionType {

 

-    @XmlElement(required = true)

-    protected String action;

-    @XmlAttribute(name = "clearValue")

-    protected String clearValue;

-    @XmlAttribute(name = "refresh")

-    protected Boolean refresh;

+	@XmlElement(required = true)

+	protected String action;

+	@XmlAttribute(name = "clearValue")

+	protected String clearValue;

+	@XmlAttribute(name = "refresh")

+	protected Boolean refresh;

 

-    /**

-     * Gets the value of the action property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getAction() {

-        return action;

-    }

+	/**

+	 * Gets the value of the action property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getAction() {

+		return action;

+	}

 

-    /**

-     * Sets the value of the action property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setAction(String value) {

-        this.action = value;

-    }

+	/**

+	 * Sets the value of the action property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setAction(String value) {

+		this.action = value;

+	}

 

-    /**

-     * Gets the value of the clearValue property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getClearValue() {

-        return clearValue;

-    }

+	/**

+	 * Gets the value of the clearValue property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getClearValue() {

+		return clearValue;

+	}

 

-    /**

-     * Sets the value of the clearValue property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setClearValue(String value) {

-        this.clearValue = value;

-    }

+	/**

+	 * Sets the value of the clearValue property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setClearValue(String value) {

+		this.clearValue = value;

+	}

 

-    /**

-     * Gets the value of the refresh property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isRefresh() {

-        if (refresh == null) {

-            return true;

-        } else {

-            return refresh;

-        }

-    }

+	/**

+	 * Gets the value of the refresh property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isRefresh() {

+		if (refresh == null) {

+			return true;

+		} else {

+			return refresh;

+		}

+	}

 

-    /**

-     * Sets the value of the refresh property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setRefresh(Boolean value) {

-        this.refresh = value;

-    }

+	/**

+	 * Sets the value of the refresh property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setRefresh(Boolean value) {

+		this.refresh = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ButtonGroupType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ButtonGroupType.java
index a4b806a..1c49370 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ButtonGroupType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ButtonGroupType.java
@@ -2,25 +2,26 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlElement;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for button-group-type complex type.

+ * <p>

+ * Java class for button-group-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="button-group-type">

@@ -46,281 +47,255 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "button-group-type", propOrder = {

-    "layoutData",

-    "layout",

-    "title",

-    "tooltip",

-    "button",

-    "controlState"

-})

+@XmlType(name = "button-group-type", propOrder = { "layoutData", "layout", "title", "tooltip", "button", "controlState" })

 public class ButtonGroupType {

 

-    @XmlElement(name = "layout-data")

-    protected LayoutDataType layoutData;

-    protected LayoutType layout;

-    protected String title;

-    protected String tooltip;

-    @XmlElement(required = true)

-    protected List<WidgetType> button;

-    @XmlElement(name = "control-state")

-    protected ControlStateType controlState;

-    @XmlAttribute(name = "group")

-    protected Boolean group;

-    @XmlAttribute(name = "attribute")

-    protected String attribute;

-    @XmlAttribute(name = "style")

-    protected String style;

-    @XmlAttribute(name = "background")

-    protected String background;

+	@XmlElement(name = "layout-data")

+	protected LayoutDataType layoutData;

+	protected LayoutType layout;

+	protected String title;

+	protected String tooltip;

+	@XmlElement(required = true)

+	protected List<WidgetType> button;

+	@XmlElement(name = "control-state")

+	protected ControlStateType controlState;

+	@XmlAttribute(name = "group")

+	protected Boolean group;

+	@XmlAttribute(name = "attribute")

+	protected String attribute;

+	@XmlAttribute(name = "style")

+	protected String style;

+	@XmlAttribute(name = "background")

+	protected String background;

 

-    /**

-     * Gets the value of the layoutData property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link LayoutDataType }

-     *     

-     */

-    public LayoutDataType getLayoutData() {

-        return layoutData;

-    }

+	/**

+	 * Gets the value of the layoutData property.

+	 * 

+	 * @return

+	 *         possible object is {@link LayoutDataType }

+	 * 

+	 */

+	public LayoutDataType getLayoutData() {

+		return layoutData;

+	}

 

-    /**

-     * Sets the value of the layoutData property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link LayoutDataType }

-     *     

-     */

-    public void setLayoutData(LayoutDataType value) {

-        this.layoutData = value;

-    }

+	/**

+	 * Sets the value of the layoutData property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link LayoutDataType }

+	 * 

+	 */

+	public void setLayoutData(LayoutDataType value) {

+		this.layoutData = value;

+	}

 

-    /**

-     * Gets the value of the layout property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link LayoutType }

-     *     

-     */

-    public LayoutType getLayout() {

-        return layout;

-    }

+	/**

+	 * Gets the value of the layout property.

+	 * 

+	 * @return

+	 *         possible object is {@link LayoutType }

+	 * 

+	 */

+	public LayoutType getLayout() {

+		return layout;

+	}

 

-    /**

-     * Sets the value of the layout property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link LayoutType }

-     *     

-     */

-    public void setLayout(LayoutType value) {

-        this.layout = value;

-    }

+	/**

+	 * Sets the value of the layout property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link LayoutType }

+	 * 

+	 */

+	public void setLayout(LayoutType value) {

+		this.layout = value;

+	}

 

-    /**

-     * Gets the value of the title property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getTitle() {

-        return title;

-    }

+	/**

+	 * Gets the value of the title property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getTitle() {

+		return title;

+	}

 

-    /**

-     * Sets the value of the title property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setTitle(String value) {

-        this.title = value;

-    }

+	/**

+	 * Sets the value of the title property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setTitle(String value) {

+		this.title = value;

+	}

 

-    /**

-     * Gets the value of the tooltip property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getTooltip() {

-        return tooltip;

-    }

+	/**

+	 * Gets the value of the tooltip property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getTooltip() {

+		return tooltip;

+	}

 

-    /**

-     * Sets the value of the tooltip property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setTooltip(String value) {

-        this.tooltip = value;

-    }

+	/**

+	 * Sets the value of the tooltip property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setTooltip(String value) {

+		this.tooltip = value;

+	}

 

-    /**

-     * Gets the value of the button property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the button property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getButton().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link WidgetType }

-     * 

-     * 

-     */

-    public List<WidgetType> getButton() {

-        if (button == null) {

-            button = new ArrayList<WidgetType>();

-        }

-        return this.button;

-    }

+	/**

+	 * Gets the value of the button property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the button

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getButton().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link WidgetType }

+	 * 

+	 * 

+	 */

+	public List<WidgetType> getButton() {

+		if (button == null) {

+			button = new ArrayList<WidgetType>();

+		}

+		return this.button;

+	}

 

-    /**

-     * Gets the value of the controlState property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link ControlStateType }

-     *     

-     */

-    public ControlStateType getControlState() {

-        return controlState;

-    }

+	/**

+	 * Gets the value of the controlState property.

+	 * 

+	 * @return

+	 *         possible object is {@link ControlStateType }

+	 * 

+	 */

+	public ControlStateType getControlState() {

+		return controlState;

+	}

 

-    /**

-     * Sets the value of the controlState property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link ControlStateType }

-     *     

-     */

-    public void setControlState(ControlStateType value) {

-        this.controlState = value;

-    }

+	/**

+	 * Sets the value of the controlState property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link ControlStateType }

+	 * 

+	 */

+	public void setControlState(ControlStateType value) {

+		this.controlState = value;

+	}

 

-    /**

-     * Gets the value of the group property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isGroup() {

-        if (group == null) {

-            return false;

-        } else {

-            return group;

-        }

-    }

+	/**

+	 * Gets the value of the group property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isGroup() {

+		if (group == null) {

+			return false;

+		} else {

+			return group;

+		}

+	}

 

-    /**

-     * Sets the value of the group property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setGroup(Boolean value) {

-        this.group = value;

-    }

+	/**

+	 * Sets the value of the group property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setGroup(Boolean value) {

+		this.group = value;

+	}

 

-    /**

-     * Gets the value of the attribute property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getAttribute() {

-        return attribute;

-    }

+	/**

+	 * Gets the value of the attribute property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getAttribute() {

+		return attribute;

+	}

 

-    /**

-     * Sets the value of the attribute property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setAttribute(String value) {

-        this.attribute = value;

-    }

+	/**

+	 * Sets the value of the attribute property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setAttribute(String value) {

+		this.attribute = value;

+	}

 

-    /**

-     * Gets the value of the style property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getStyle() {

-        return style;

-    }

+	/**

+	 * Gets the value of the style property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getStyle() {

+		return style;

+	}

 

-    /**

-     * Sets the value of the style property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setStyle(String value) {

-        this.style = value;

-    }

+	/**

+	 * Sets the value of the style property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setStyle(String value) {

+		this.style = value;

+	}

 

-    /**

-     * Gets the value of the background property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getBackground() {

-        return background;

-    }

+	/**

+	 * Gets the value of the background property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getBackground() {

+		return background;

+	}

 

-    /**

-     * Sets the value of the background property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setBackground(String value) {

-        this.background = value;

-    }

+	/**

+	 * Sets the value of the background property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setBackground(String value) {

+		this.background = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ColumnDataType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ColumnDataType.java
index 4cd74fc..942667c 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ColumnDataType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ColumnDataType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -13,11 +12,12 @@
 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for column-data-type complex type.

+ * <p>

+ * Java class for column-data-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="column-data-type">

@@ -42,255 +42,234 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "column-data-type", propOrder = {

-    "font",

-    "tooltip"

-})

+@XmlType(name = "column-data-type", propOrder = { "font", "tooltip" })

 public class ColumnDataType {

 

-    protected FontType font;

-    protected String tooltip;

-    @XmlAttribute(name = "name")

-    protected String name;

-    @XmlAttribute(name = "width")

-    protected Integer width;

-    @XmlAttribute(name = "alignment")

-    protected String alignment;

-    @XmlAttribute(name = "resizable")

-    protected Boolean resizable;

-    @XmlAttribute(name = "moveable")

-    protected Boolean moveable;

-    @XmlAttribute(name = "foreground")

-    protected String foreground;

-    @XmlAttribute(name = "background")

-    protected String background;

+	protected FontType font;

+	protected String tooltip;

+	@XmlAttribute(name = "name")

+	protected String name;

+	@XmlAttribute(name = "width")

+	protected Integer width;

+	@XmlAttribute(name = "alignment")

+	protected String alignment;

+	@XmlAttribute(name = "resizable")

+	protected Boolean resizable;

+	@XmlAttribute(name = "moveable")

+	protected Boolean moveable;

+	@XmlAttribute(name = "foreground")

+	protected String foreground;

+	@XmlAttribute(name = "background")

+	protected String background;

 

-    /**

-     * Gets the value of the font property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link FontType }

-     *     

-     */

-    public FontType getFont() {

-        return font;

-    }

+	/**

+	 * Gets the value of the font property.

+	 * 

+	 * @return

+	 *         possible object is {@link FontType }

+	 * 

+	 */

+	public FontType getFont() {

+		return font;

+	}

 

-    /**

-     * Sets the value of the font property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link FontType }

-     *     

-     */

-    public void setFont(FontType value) {

-        this.font = value;

-    }

+	/**

+	 * Sets the value of the font property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link FontType }

+	 * 

+	 */

+	public void setFont(FontType value) {

+		this.font = value;

+	}

 

-    /**

-     * Gets the value of the tooltip property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getTooltip() {

-        return tooltip;

-    }

+	/**

+	 * Gets the value of the tooltip property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getTooltip() {

+		return tooltip;

+	}

 

-    /**

-     * Sets the value of the tooltip property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setTooltip(String value) {

-        this.tooltip = value;

-    }

+	/**

+	 * Sets the value of the tooltip property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setTooltip(String value) {

+		this.tooltip = value;

+	}

 

-    /**

-     * Gets the value of the name property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getName() {

-        return name;

-    }

+	/**

+	 * Gets the value of the name property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getName() {

+		return name;

+	}

 

-    /**

-     * Sets the value of the name property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setName(String value) {

-        this.name = value;

-    }

+	/**

+	 * Sets the value of the name property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setName(String value) {

+		this.name = value;

+	}

 

-    /**

-     * Gets the value of the width property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public int getWidth() {

-        if (width == null) {

-            return -1;

-        } else {

-            return width;

-        }

-    }

+	/**

+	 * Gets the value of the width property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public int getWidth() {

+		if (width == null) {

+			return -1;

+		} else {

+			return width;

+		}

+	}

 

-    /**

-     * Sets the value of the width property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setWidth(Integer value) {

-        this.width = value;

-    }

+	/**

+	 * Sets the value of the width property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setWidth(Integer value) {

+		this.width = value;

+	}

 

-    /**

-     * Gets the value of the alignment property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getAlignment() {

-        return alignment;

-    }

+	/**

+	 * Gets the value of the alignment property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getAlignment() {

+		return alignment;

+	}

 

-    /**

-     * Sets the value of the alignment property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setAlignment(String value) {

-        this.alignment = value;

-    }

+	/**

+	 * Sets the value of the alignment property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setAlignment(String value) {

+		this.alignment = value;

+	}

 

-    /**

-     * Gets the value of the resizable property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isResizable() {

-        if (resizable == null) {

-            return false;

-        } else {

-            return resizable;

-        }

-    }

+	/**

+	 * Gets the value of the resizable property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isResizable() {

+		if (resizable == null) {

+			return false;

+		} else {

+			return resizable;

+		}

+	}

 

-    /**

-     * Sets the value of the resizable property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setResizable(Boolean value) {

-        this.resizable = value;

-    }

+	/**

+	 * Sets the value of the resizable property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setResizable(Boolean value) {

+		this.resizable = value;

+	}

 

-    /**

-     * Gets the value of the moveable property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isMoveable() {

-        if (moveable == null) {

-            return false;

-        } else {

-            return moveable;

-        }

-    }

+	/**

+	 * Gets the value of the moveable property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isMoveable() {

+		if (moveable == null) {

+			return false;

+		} else {

+			return moveable;

+		}

+	}

 

-    /**

-     * Sets the value of the moveable property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setMoveable(Boolean value) {

-        this.moveable = value;

-    }

+	/**

+	 * Sets the value of the moveable property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setMoveable(Boolean value) {

+		this.moveable = value;

+	}

 

-    /**

-     * Gets the value of the foreground property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getForeground() {

-        return foreground;

-    }

+	/**

+	 * Gets the value of the foreground property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getForeground() {

+		return foreground;

+	}

 

-    /**

-     * Sets the value of the foreground property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setForeground(String value) {

-        this.foreground = value;

-    }

+	/**

+	 * Sets the value of the foreground property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setForeground(String value) {

+		this.foreground = value;

+	}

 

-    /**

-     * Gets the value of the background property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getBackground() {

-        return background;

-    }

+	/**

+	 * Gets the value of the background property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getBackground() {

+		return background;

+	}

 

-    /**

-     * Sets the value of the background property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setBackground(String value) {

-        this.background = value;

-    }

+	/**

+	 * Sets the value of the background property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setBackground(String value) {

+		this.background = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/CommandType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/CommandType.java
index a06df83..676d7d1 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/CommandType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/CommandType.java
@@ -2,25 +2,26 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlElement;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for command-type complex type.

+ * <p>

+ * Java class for command-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="command-type">

@@ -53,506 +54,469 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "command-type", propOrder = {

-    "arg",

-    "input",

-    "environment",

-    "stdoutParser",

-    "stderrParser",

-    "redirectParser",

-    "preLaunchCmd",

-    "postLaunchCmd"

-})

+@XmlType(name = "command-type", propOrder = { "arg", "input", "environment", "stdoutParser", "stderrParser", "redirectParser",

+		"preLaunchCmd", "postLaunchCmd" })

 public class CommandType {

 

-    @XmlElement(required = true)

-    protected List<ArgType> arg;

-    protected List<ArgType> input;

-    protected List<EnvironmentType> environment;

-    @XmlElement(name = "stdout-parser")

-    protected TokenizerType stdoutParser;

-    @XmlElement(name = "stderr-parser")

-    protected TokenizerType stderrParser;

-    @XmlElement(name = "redirect-parser")

-    protected TokenizerType redirectParser;

-    @XmlElement(name = "pre-launch-cmd")

-    protected List<SimpleCommandType> preLaunchCmd;

-    @XmlElement(name = "post-launch-cmd")

-    protected List<SimpleCommandType> postLaunchCmd;

-    @XmlAttribute(name = "name", required = true)

-    protected String name;

-    @XmlAttribute(name = "directory")

-    protected String directory;

-    @XmlAttribute(name = "redirectStderr")

-    protected Boolean redirectStderr;

-    @XmlAttribute(name = "streamBufferLimit")

-    protected Integer streamBufferLimit;

-    @XmlAttribute(name = "replaceEnvironment")

-    protected Boolean replaceEnvironment;

-    @XmlAttribute(name = "waitForId")

-    protected Boolean waitForId;

-    @XmlAttribute(name = "ignoreExitStatus")

-    protected Boolean ignoreExitStatus;

-    @XmlAttribute(name = "keepOpen")

-    protected Boolean keepOpen;

-    @XmlAttribute(name = "flags")

-    protected String flags;

+	@XmlElement(required = true)

+	protected List<ArgType> arg;

+	protected List<ArgType> input;

+	protected List<EnvironmentType> environment;

+	@XmlElement(name = "stdout-parser")

+	protected TokenizerType stdoutParser;

+	@XmlElement(name = "stderr-parser")

+	protected TokenizerType stderrParser;

+	@XmlElement(name = "redirect-parser")

+	protected TokenizerType redirectParser;

+	@XmlElement(name = "pre-launch-cmd")

+	protected List<SimpleCommandType> preLaunchCmd;

+	@XmlElement(name = "post-launch-cmd")

+	protected List<SimpleCommandType> postLaunchCmd;

+	@XmlAttribute(name = "name", required = true)

+	protected String name;

+	@XmlAttribute(name = "directory")

+	protected String directory;

+	@XmlAttribute(name = "redirectStderr")

+	protected Boolean redirectStderr;

+	@XmlAttribute(name = "streamBufferLimit")

+	protected Integer streamBufferLimit;

+	@XmlAttribute(name = "replaceEnvironment")

+	protected Boolean replaceEnvironment;

+	@XmlAttribute(name = "waitForId")

+	protected Boolean waitForId;

+	@XmlAttribute(name = "ignoreExitStatus")

+	protected Boolean ignoreExitStatus;

+	@XmlAttribute(name = "keepOpen")

+	protected Boolean keepOpen;

+	@XmlAttribute(name = "flags")

+	protected String flags;

 

-    /**

-     * Gets the value of the arg property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the arg property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getArg().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link ArgType }

-     * 

-     * 

-     */

-    public List<ArgType> getArg() {

-        if (arg == null) {

-            arg = new ArrayList<ArgType>();

-        }

-        return this.arg;

-    }

+	/**

+	 * Gets the value of the arg property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the arg

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getArg().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link ArgType }

+	 * 

+	 * 

+	 */

+	public List<ArgType> getArg() {

+		if (arg == null) {

+			arg = new ArrayList<ArgType>();

+		}

+		return this.arg;

+	}

 

-    /**

-     * Gets the value of the input property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the input property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getInput().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link ArgType }

-     * 

-     * 

-     */

-    public List<ArgType> getInput() {

-        if (input == null) {

-            input = new ArrayList<ArgType>();

-        }

-        return this.input;

-    }

+	/**

+	 * Gets the value of the input property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the input

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getInput().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link ArgType }

+	 * 

+	 * 

+	 */

+	public List<ArgType> getInput() {

+		if (input == null) {

+			input = new ArrayList<ArgType>();

+		}

+		return this.input;

+	}

 

-    /**

-     * Gets the value of the environment property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the environment property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getEnvironment().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link EnvironmentType }

-     * 

-     * 

-     */

-    public List<EnvironmentType> getEnvironment() {

-        if (environment == null) {

-            environment = new ArrayList<EnvironmentType>();

-        }

-        return this.environment;

-    }

+	/**

+	 * Gets the value of the environment property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the environment

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getEnvironment().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link EnvironmentType }

+	 * 

+	 * 

+	 */

+	public List<EnvironmentType> getEnvironment() {

+		if (environment == null) {

+			environment = new ArrayList<EnvironmentType>();

+		}

+		return this.environment;

+	}

 

-    /**

-     * Gets the value of the stdoutParser property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link TokenizerType }

-     *     

-     */

-    public TokenizerType getStdoutParser() {

-        return stdoutParser;

-    }

+	/**

+	 * Gets the value of the stdoutParser property.

+	 * 

+	 * @return

+	 *         possible object is {@link TokenizerType }

+	 * 

+	 */

+	public TokenizerType getStdoutParser() {

+		return stdoutParser;

+	}

 

-    /**

-     * Sets the value of the stdoutParser property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link TokenizerType }

-     *     

-     */

-    public void setStdoutParser(TokenizerType value) {

-        this.stdoutParser = value;

-    }

+	/**

+	 * Sets the value of the stdoutParser property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link TokenizerType }

+	 * 

+	 */

+	public void setStdoutParser(TokenizerType value) {

+		this.stdoutParser = value;

+	}

 

-    /**

-     * Gets the value of the stderrParser property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link TokenizerType }

-     *     

-     */

-    public TokenizerType getStderrParser() {

-        return stderrParser;

-    }

+	/**

+	 * Gets the value of the stderrParser property.

+	 * 

+	 * @return

+	 *         possible object is {@link TokenizerType }

+	 * 

+	 */

+	public TokenizerType getStderrParser() {

+		return stderrParser;

+	}

 

-    /**

-     * Sets the value of the stderrParser property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link TokenizerType }

-     *     

-     */

-    public void setStderrParser(TokenizerType value) {

-        this.stderrParser = value;

-    }

+	/**

+	 * Sets the value of the stderrParser property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link TokenizerType }

+	 * 

+	 */

+	public void setStderrParser(TokenizerType value) {

+		this.stderrParser = value;

+	}

 

-    /**

-     * Gets the value of the redirectParser property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link TokenizerType }

-     *     

-     */

-    public TokenizerType getRedirectParser() {

-        return redirectParser;

-    }

+	/**

+	 * Gets the value of the redirectParser property.

+	 * 

+	 * @return

+	 *         possible object is {@link TokenizerType }

+	 * 

+	 */

+	public TokenizerType getRedirectParser() {

+		return redirectParser;

+	}

 

-    /**

-     * Sets the value of the redirectParser property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link TokenizerType }

-     *     

-     */

-    public void setRedirectParser(TokenizerType value) {

-        this.redirectParser = value;

-    }

+	/**

+	 * Sets the value of the redirectParser property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link TokenizerType }

+	 * 

+	 */

+	public void setRedirectParser(TokenizerType value) {

+		this.redirectParser = value;

+	}

 

-    /**

-     * Gets the value of the preLaunchCmd property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the preLaunchCmd property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getPreLaunchCmd().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link SimpleCommandType }

-     * 

-     * 

-     */

-    public List<SimpleCommandType> getPreLaunchCmd() {

-        if (preLaunchCmd == null) {

-            preLaunchCmd = new ArrayList<SimpleCommandType>();

-        }

-        return this.preLaunchCmd;

-    }

+	/**

+	 * Gets the value of the preLaunchCmd property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the preLaunchCmd

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getPreLaunchCmd().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link SimpleCommandType }

+	 * 

+	 * 

+	 */

+	public List<SimpleCommandType> getPreLaunchCmd() {

+		if (preLaunchCmd == null) {

+			preLaunchCmd = new ArrayList<SimpleCommandType>();

+		}

+		return this.preLaunchCmd;

+	}

 

-    /**

-     * Gets the value of the postLaunchCmd property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the postLaunchCmd property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getPostLaunchCmd().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link SimpleCommandType }

-     * 

-     * 

-     */

-    public List<SimpleCommandType> getPostLaunchCmd() {

-        if (postLaunchCmd == null) {

-            postLaunchCmd = new ArrayList<SimpleCommandType>();

-        }

-        return this.postLaunchCmd;

-    }

+	/**

+	 * Gets the value of the postLaunchCmd property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the

+	 * postLaunchCmd property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getPostLaunchCmd().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link SimpleCommandType }

+	 * 

+	 * 

+	 */

+	public List<SimpleCommandType> getPostLaunchCmd() {

+		if (postLaunchCmd == null) {

+			postLaunchCmd = new ArrayList<SimpleCommandType>();

+		}

+		return this.postLaunchCmd;

+	}

 

-    /**

-     * Gets the value of the name property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getName() {

-        return name;

-    }

+	/**

+	 * Gets the value of the name property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getName() {

+		return name;

+	}

 

-    /**

-     * Sets the value of the name property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setName(String value) {

-        this.name = value;

-    }

+	/**

+	 * Sets the value of the name property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setName(String value) {

+		this.name = value;

+	}

 

-    /**

-     * Gets the value of the directory property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getDirectory() {

-        return directory;

-    }

+	/**

+	 * Gets the value of the directory property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getDirectory() {

+		return directory;

+	}

 

-    /**

-     * Sets the value of the directory property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setDirectory(String value) {

-        this.directory = value;

-    }

+	/**

+	 * Sets the value of the directory property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setDirectory(String value) {

+		this.directory = value;

+	}

 

-    /**

-     * Gets the value of the redirectStderr property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isRedirectStderr() {

-        if (redirectStderr == null) {

-            return false;

-        } else {

-            return redirectStderr;

-        }

-    }

+	/**

+	 * Gets the value of the redirectStderr property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isRedirectStderr() {

+		if (redirectStderr == null) {

+			return false;

+		} else {

+			return redirectStderr;

+		}

+	}

 

-    /**

-     * Sets the value of the redirectStderr property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setRedirectStderr(Boolean value) {

-        this.redirectStderr = value;

-    }

+	/**

+	 * Sets the value of the redirectStderr property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setRedirectStderr(Boolean value) {

+		this.redirectStderr = value;

+	}

 

-    /**

-     * Gets the value of the streamBufferLimit property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public int getStreamBufferLimit() {

-        if (streamBufferLimit == null) {

-            return -1;

-        } else {

-            return streamBufferLimit;

-        }

-    }

+	/**

+	 * Gets the value of the streamBufferLimit property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public int getStreamBufferLimit() {

+		if (streamBufferLimit == null) {

+			return -1;

+		} else {

+			return streamBufferLimit;

+		}

+	}

 

-    /**

-     * Sets the value of the streamBufferLimit property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setStreamBufferLimit(Integer value) {

-        this.streamBufferLimit = value;

-    }

+	/**

+	 * Sets the value of the streamBufferLimit property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setStreamBufferLimit(Integer value) {

+		this.streamBufferLimit = value;

+	}

 

-    /**

-     * Gets the value of the replaceEnvironment property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isReplaceEnvironment() {

-        if (replaceEnvironment == null) {

-            return false;

-        } else {

-            return replaceEnvironment;

-        }

-    }

+	/**

+	 * Gets the value of the replaceEnvironment property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isReplaceEnvironment() {

+		if (replaceEnvironment == null) {

+			return false;

+		} else {

+			return replaceEnvironment;

+		}

+	}

 

-    /**

-     * Sets the value of the replaceEnvironment property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setReplaceEnvironment(Boolean value) {

-        this.replaceEnvironment = value;

-    }

+	/**

+	 * Sets the value of the replaceEnvironment property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setReplaceEnvironment(Boolean value) {

+		this.replaceEnvironment = value;

+	}

 

-    /**

-     * Gets the value of the waitForId property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isWaitForId() {

-        if (waitForId == null) {

-            return false;

-        } else {

-            return waitForId;

-        }

-    }

+	/**

+	 * Gets the value of the waitForId property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isWaitForId() {

+		if (waitForId == null) {

+			return false;

+		} else {

+			return waitForId;

+		}

+	}

 

-    /**

-     * Sets the value of the waitForId property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setWaitForId(Boolean value) {

-        this.waitForId = value;

-    }

+	/**

+	 * Sets the value of the waitForId property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setWaitForId(Boolean value) {

+		this.waitForId = value;

+	}

 

-    /**

-     * Gets the value of the ignoreExitStatus property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isIgnoreExitStatus() {

-        if (ignoreExitStatus == null) {

-            return false;

-        } else {

-            return ignoreExitStatus;

-        }

-    }

+	/**

+	 * Gets the value of the ignoreExitStatus property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isIgnoreExitStatus() {

+		if (ignoreExitStatus == null) {

+			return false;

+		} else {

+			return ignoreExitStatus;

+		}

+	}

 

-    /**

-     * Sets the value of the ignoreExitStatus property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setIgnoreExitStatus(Boolean value) {

-        this.ignoreExitStatus = value;

-    }

+	/**

+	 * Sets the value of the ignoreExitStatus property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setIgnoreExitStatus(Boolean value) {

+		this.ignoreExitStatus = value;

+	}

 

-    /**

-     * Gets the value of the keepOpen property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isKeepOpen() {

-        if (keepOpen == null) {

-            return false;

-        } else {

-            return keepOpen;

-        }

-    }

+	/**

+	 * Gets the value of the keepOpen property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isKeepOpen() {

+		if (keepOpen == null) {

+			return false;

+		} else {

+			return keepOpen;

+		}

+	}

 

-    /**

-     * Sets the value of the keepOpen property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setKeepOpen(Boolean value) {

-        this.keepOpen = value;

-    }

+	/**

+	 * Sets the value of the keepOpen property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setKeepOpen(Boolean value) {

+		this.keepOpen = value;

+	}

 

-    /**

-     * Gets the value of the flags property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getFlags() {

-        return flags;

-    }

+	/**

+	 * Gets the value of the flags property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getFlags() {

+		return flags;

+	}

 

-    /**

-     * Sets the value of the flags property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setFlags(String value) {

-        this.flags = value;

-    }

+	/**

+	 * Sets the value of the flags property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setFlags(String value) {

+		this.flags = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/CompositeType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/CompositeType.java
index 2f323e2..24fedd5 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/CompositeType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/CompositeType.java
@@ -2,14 +2,14 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlAttribute;

@@ -17,11 +17,12 @@
 import javax.xml.bind.annotation.XmlElements;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for composite-type complex type.

+ * <p>

+ * Java class for composite-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="composite-type">

@@ -54,269 +55,237 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "composite-type", propOrder = {

-    "layout",

-    "layoutData",

-    "font",

-    "title",

-    "tabFolderOrCompositeOrWidget",

-    "controlState"

-})

+@XmlType(name = "composite-type", propOrder = { "layout", "layoutData", "font", "title", "tabFolderOrCompositeOrWidget",

+		"controlState" })

 public class CompositeType {

 

-    protected LayoutType layout;

-    @XmlElement(name = "layout-data")

-    protected LayoutDataType layoutData;

-    protected FontType font;

-    protected String title;

-    @XmlElements({

-        @XmlElement(name = "tab-folder", type = TabFolderType.class),

-        @XmlElement(name = "composite", type = CompositeType.class),

-        @XmlElement(name = "widget", type = WidgetType.class),

-        @XmlElement(name = "browse", type = BrowseType.class),

-        @XmlElement(name = "action", type = PushButtonType.class),

-        @XmlElement(name = "button-group", type = ButtonGroupType.class),

-        @XmlElement(name = "viewer", type = AttributeViewerType.class)

-    })

-    protected List<Object> tabFolderOrCompositeOrWidget;

-    @XmlElement(name = "control-state")

-    protected ControlStateType controlState;

-    @XmlAttribute(name = "group")

-    protected Boolean group;

-    @XmlAttribute(name = "style")

-    protected String style;

-    @XmlAttribute(name = "background")

-    protected String background;

+	protected LayoutType layout;

+	@XmlElement(name = "layout-data")

+	protected LayoutDataType layoutData;

+	protected FontType font;

+	protected String title;

+	@XmlElements({ @XmlElement(name = "tab-folder", type = TabFolderType.class),

+			@XmlElement(name = "composite", type = CompositeType.class), @XmlElement(name = "widget", type = WidgetType.class),

+			@XmlElement(name = "browse", type = BrowseType.class), @XmlElement(name = "action", type = PushButtonType.class),

+			@XmlElement(name = "button-group", type = ButtonGroupType.class),

+			@XmlElement(name = "viewer", type = AttributeViewerType.class) })

+	protected List<Object> tabFolderOrCompositeOrWidget;

+	@XmlElement(name = "control-state")

+	protected ControlStateType controlState;

+	@XmlAttribute(name = "group")

+	protected Boolean group;

+	@XmlAttribute(name = "style")

+	protected String style;

+	@XmlAttribute(name = "background")

+	protected String background;

 

-    /**

-     * Gets the value of the layout property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link LayoutType }

-     *     

-     */

-    public LayoutType getLayout() {

-        return layout;

-    }

+	/**

+	 * Gets the value of the layout property.

+	 * 

+	 * @return

+	 *         possible object is {@link LayoutType }

+	 * 

+	 */

+	public LayoutType getLayout() {

+		return layout;

+	}

 

-    /**

-     * Sets the value of the layout property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link LayoutType }

-     *     

-     */

-    public void setLayout(LayoutType value) {

-        this.layout = value;

-    }

+	/**

+	 * Sets the value of the layout property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link LayoutType }

+	 * 

+	 */

+	public void setLayout(LayoutType value) {

+		this.layout = value;

+	}

 

-    /**

-     * Gets the value of the layoutData property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link LayoutDataType }

-     *     

-     */

-    public LayoutDataType getLayoutData() {

-        return layoutData;

-    }

+	/**

+	 * Gets the value of the layoutData property.

+	 * 

+	 * @return

+	 *         possible object is {@link LayoutDataType }

+	 * 

+	 */

+	public LayoutDataType getLayoutData() {

+		return layoutData;

+	}

 

-    /**

-     * Sets the value of the layoutData property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link LayoutDataType }

-     *     

-     */

-    public void setLayoutData(LayoutDataType value) {

-        this.layoutData = value;

-    }

+	/**

+	 * Sets the value of the layoutData property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link LayoutDataType }

+	 * 

+	 */

+	public void setLayoutData(LayoutDataType value) {

+		this.layoutData = value;

+	}

 

-    /**

-     * Gets the value of the font property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link FontType }

-     *     

-     */

-    public FontType getFont() {

-        return font;

-    }

+	/**

+	 * Gets the value of the font property.

+	 * 

+	 * @return

+	 *         possible object is {@link FontType }

+	 * 

+	 */

+	public FontType getFont() {

+		return font;

+	}

 

-    /**

-     * Sets the value of the font property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link FontType }

-     *     

-     */

-    public void setFont(FontType value) {

-        this.font = value;

-    }

+	/**

+	 * Sets the value of the font property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link FontType }

+	 * 

+	 */

+	public void setFont(FontType value) {

+		this.font = value;

+	}

 

-    /**

-     * Gets the value of the title property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getTitle() {

-        return title;

-    }

+	/**

+	 * Gets the value of the title property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getTitle() {

+		return title;

+	}

 

-    /**

-     * Sets the value of the title property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setTitle(String value) {

-        this.title = value;

-    }

+	/**

+	 * Sets the value of the title property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setTitle(String value) {

+		this.title = value;

+	}

 

-    /**

-     * Gets the value of the tabFolderOrCompositeOrWidget property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the tabFolderOrCompositeOrWidget property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getTabFolderOrCompositeOrWidget().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link TabFolderType }

-     * {@link CompositeType }

-     * {@link WidgetType }

-     * {@link BrowseType }

-     * {@link PushButtonType }

-     * {@link ButtonGroupType }

-     * {@link AttributeViewerType }

-     * 

-     * 

-     */

-    public List<Object> getTabFolderOrCompositeOrWidget() {

-        if (tabFolderOrCompositeOrWidget == null) {

-            tabFolderOrCompositeOrWidget = new ArrayList<Object>();

-        }

-        return this.tabFolderOrCompositeOrWidget;

-    }

+	/**

+	 * Gets the value of the tabFolderOrCompositeOrWidget property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the

+	 * tabFolderOrCompositeOrWidget property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getTabFolderOrCompositeOrWidget().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link TabFolderType } {@link CompositeType } {@link WidgetType }

+	 * {@link BrowseType } {@link PushButtonType } {@link ButtonGroupType } {@link AttributeViewerType }

+	 * 

+	 * 

+	 */

+	public List<Object> getTabFolderOrCompositeOrWidget() {

+		if (tabFolderOrCompositeOrWidget == null) {

+			tabFolderOrCompositeOrWidget = new ArrayList<Object>();

+		}

+		return this.tabFolderOrCompositeOrWidget;

+	}

 

-    /**

-     * Gets the value of the controlState property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link ControlStateType }

-     *     

-     */

-    public ControlStateType getControlState() {

-        return controlState;

-    }

+	/**

+	 * Gets the value of the controlState property.

+	 * 

+	 * @return

+	 *         possible object is {@link ControlStateType }

+	 * 

+	 */

+	public ControlStateType getControlState() {

+		return controlState;

+	}

 

-    /**

-     * Sets the value of the controlState property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link ControlStateType }

-     *     

-     */

-    public void setControlState(ControlStateType value) {

-        this.controlState = value;

-    }

+	/**

+	 * Sets the value of the controlState property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link ControlStateType }

+	 * 

+	 */

+	public void setControlState(ControlStateType value) {

+		this.controlState = value;

+	}

 

-    /**

-     * Gets the value of the group property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isGroup() {

-        if (group == null) {

-            return false;

-        } else {

-            return group;

-        }

-    }

+	/**

+	 * Gets the value of the group property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isGroup() {

+		if (group == null) {

+			return false;

+		} else {

+			return group;

+		}

+	}

 

-    /**

-     * Sets the value of the group property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setGroup(Boolean value) {

-        this.group = value;

-    }

+	/**

+	 * Sets the value of the group property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setGroup(Boolean value) {

+		this.group = value;

+	}

 

-    /**

-     * Gets the value of the style property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getStyle() {

-        return style;

-    }

+	/**

+	 * Gets the value of the style property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getStyle() {

+		return style;

+	}

 

-    /**

-     * Sets the value of the style property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setStyle(String value) {

-        this.style = value;

-    }

+	/**

+	 * Sets the value of the style property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setStyle(String value) {

+		this.style = value;

+	}

 

-    /**

-     * Gets the value of the background property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getBackground() {

-        return background;

-    }

+	/**

+	 * Gets the value of the background property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getBackground() {

+		return background;

+	}

 

-    /**

-     * Sets the value of the background property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setBackground(String value) {

-        this.background = value;

-    }

+	/**

+	 * Sets the value of the background property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setBackground(String value) {

+		this.background = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ControlStateRuleType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ControlStateRuleType.java
index 157b14b..d3ccf9a 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ControlStateRuleType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ControlStateRuleType.java
@@ -2,25 +2,26 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlElement;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for control-state-rule-type complex type.

+ * <p>

+ * Java class for control-state-rule-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="control-state-rule-type">

@@ -73,370 +74,345 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "control-state-rule-type", propOrder = {

-    "not",

-    "and",

-    "or"

-})

+@XmlType(name = "control-state-rule-type", propOrder = { "not", "and", "or" })

 public class ControlStateRuleType {

 

-    protected ControlStateRuleType.Not not;

-    protected ControlStateRuleType.And and;

-    protected ControlStateRuleType.Or or;

-    @XmlAttribute(name = "button")

-    protected String button;

-    @XmlAttribute(name = "selected")

-    protected Boolean selected;

-    @XmlAttribute(name = "attribute")

-    protected String attribute;

-    @XmlAttribute(name = "value")

-    protected String value;

+	protected ControlStateRuleType.Not not;

+	protected ControlStateRuleType.And and;

+	protected ControlStateRuleType.Or or;

+	@XmlAttribute(name = "button")

+	protected String button;

+	@XmlAttribute(name = "selected")

+	protected Boolean selected;

+	@XmlAttribute(name = "attribute")

+	protected String attribute;

+	@XmlAttribute(name = "value")

+	protected String value;

 

-    /**

-     * Gets the value of the not property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link ControlStateRuleType.Not }

-     *     

-     */

-    public ControlStateRuleType.Not getNot() {

-        return not;

-    }

+	/**

+	 * Gets the value of the not property.

+	 * 

+	 * @return

+	 *         possible object is {@link ControlStateRuleType.Not }

+	 * 

+	 */

+	public ControlStateRuleType.Not getNot() {

+		return not;

+	}

 

-    /**

-     * Sets the value of the not property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link ControlStateRuleType.Not }

-     *     

-     */

-    public void setNot(ControlStateRuleType.Not value) {

-        this.not = value;

-    }

+	/**

+	 * Sets the value of the not property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link ControlStateRuleType.Not }

+	 * 

+	 */

+	public void setNot(ControlStateRuleType.Not value) {

+		this.not = value;

+	}

 

-    /**

-     * Gets the value of the and property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link ControlStateRuleType.And }

-     *     

-     */

-    public ControlStateRuleType.And getAnd() {

-        return and;

-    }

+	/**

+	 * Gets the value of the and property.

+	 * 

+	 * @return

+	 *         possible object is {@link ControlStateRuleType.And }

+	 * 

+	 */

+	public ControlStateRuleType.And getAnd() {

+		return and;

+	}

 

-    /**

-     * Sets the value of the and property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link ControlStateRuleType.And }

-     *     

-     */

-    public void setAnd(ControlStateRuleType.And value) {

-        this.and = value;

-    }

+	/**

+	 * Sets the value of the and property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link ControlStateRuleType.And }

+	 * 

+	 */

+	public void setAnd(ControlStateRuleType.And value) {

+		this.and = value;

+	}

 

-    /**

-     * Gets the value of the or property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link ControlStateRuleType.Or }

-     *     

-     */

-    public ControlStateRuleType.Or getOr() {

-        return or;

-    }

+	/**

+	 * Gets the value of the or property.

+	 * 

+	 * @return

+	 *         possible object is {@link ControlStateRuleType.Or }

+	 * 

+	 */

+	public ControlStateRuleType.Or getOr() {

+		return or;

+	}

 

-    /**

-     * Sets the value of the or property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link ControlStateRuleType.Or }

-     *     

-     */

-    public void setOr(ControlStateRuleType.Or value) {

-        this.or = value;

-    }

+	/**

+	 * Sets the value of the or property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link ControlStateRuleType.Or }

+	 * 

+	 */

+	public void setOr(ControlStateRuleType.Or value) {

+		this.or = value;

+	}

 

-    /**

-     * Gets the value of the button property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getButton() {

-        return button;

-    }

+	/**

+	 * Gets the value of the button property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getButton() {

+		return button;

+	}

 

-    /**

-     * Sets the value of the button property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setButton(String value) {

-        this.button = value;

-    }

+	/**

+	 * Sets the value of the button property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setButton(String value) {

+		this.button = value;

+	}

 

-    /**

-     * Gets the value of the selected property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isSelected() {

-        if (selected == null) {

-            return true;

-        } else {

-            return selected;

-        }

-    }

+	/**

+	 * Gets the value of the selected property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isSelected() {

+		if (selected == null) {

+			return true;

+		} else {

+			return selected;

+		}

+	}

 

-    /**

-     * Sets the value of the selected property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setSelected(Boolean value) {

-        this.selected = value;

-    }

+	/**

+	 * Sets the value of the selected property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setSelected(Boolean value) {

+		this.selected = value;

+	}

 

-    /**

-     * Gets the value of the attribute property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getAttribute() {

-        return attribute;

-    }

+	/**

+	 * Gets the value of the attribute property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getAttribute() {

+		return attribute;

+	}

 

-    /**

-     * Sets the value of the attribute property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setAttribute(String value) {

-        this.attribute = value;

-    }

+	/**

+	 * Sets the value of the attribute property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setAttribute(String value) {

+		this.attribute = value;

+	}

 

-    /**

-     * Gets the value of the value property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getValue() {

-        return value;

-    }

+	/**

+	 * Gets the value of the value property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getValue() {

+		return value;

+	}

 

-    /**

-     * Sets the value of the value property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setValue(String value) {

-        this.value = value;

-    }

+	/**

+	 * Sets the value of the value property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setValue(String value) {

+		this.value = value;

+	}

 

+	/**

+	 * <p>

+	 * Java class for anonymous complex type.

+	 * 

+	 * <p>

+	 * The following schema fragment specifies the expected content contained within this class.

+	 * 

+	 * <pre>

+	 * &lt;complexType>

+	 *   &lt;complexContent>

+	 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+	 *       &lt;sequence>

+	 *         &lt;element name="rule" type="{http://eclipse.org/ptp/rm}control-state-rule-type" maxOccurs="unbounded"/>

+	 *       &lt;/sequence>

+	 *     &lt;/restriction>

+	 *   &lt;/complexContent>

+	 * &lt;/complexType>

+	 * </pre>

+	 * 

+	 * 

+	 */

+	@XmlAccessorType(XmlAccessType.FIELD)

+	@XmlType(name = "", propOrder = { "rule" })

+	public static class And {

 

-    /**

-     * <p>Java class for anonymous complex type.

-     * 

-     * <p>The following schema fragment specifies the expected content contained within this class.

-     * 

-     * <pre>

-     * &lt;complexType>

-     *   &lt;complexContent>

-     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

-     *       &lt;sequence>

-     *         &lt;element name="rule" type="{http://eclipse.org/ptp/rm}control-state-rule-type" maxOccurs="unbounded"/>

-     *       &lt;/sequence>

-     *     &lt;/restriction>

-     *   &lt;/complexContent>

-     * &lt;/complexType>

-     * </pre>

-     * 

-     * 

-     */

-    @XmlAccessorType(XmlAccessType.FIELD)

-    @XmlType(name = "", propOrder = {

-        "rule"

-    })

-    public static class And {

+		@XmlElement(required = true)

+		protected List<ControlStateRuleType> rule;

 

-        @XmlElement(required = true)

-        protected List<ControlStateRuleType> rule;

+		/**

+		 * Gets the value of the rule property.

+		 * 

+		 * <p>

+		 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+		 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the rule

+		 * property.

+		 * 

+		 * <p>

+		 * For example, to add a new item, do as follows:

+		 * 

+		 * <pre>

+		 * getRule().add(newItem);

+		 * </pre>

+		 * 

+		 * 

+		 * <p>

+		 * Objects of the following type(s) are allowed in the list {@link ControlStateRuleType }

+		 * 

+		 * 

+		 */

+		public List<ControlStateRuleType> getRule() {

+			if (rule == null) {

+				rule = new ArrayList<ControlStateRuleType>();

+			}

+			return this.rule;

+		}

 

-        /**

-         * Gets the value of the rule property.

-         * 

-         * <p>

-         * This accessor method returns a reference to the live list,

-         * not a snapshot. Therefore any modification you make to the

-         * returned list will be present inside the JAXB object.

-         * This is why there is not a <CODE>set</CODE> method for the rule property.

-         * 

-         * <p>

-         * For example, to add a new item, do as follows:

-         * <pre>

-         *    getRule().add(newItem);

-         * </pre>

-         * 

-         * 

-         * <p>

-         * Objects of the following type(s) are allowed in the list

-         * {@link ControlStateRuleType }

-         * 

-         * 

-         */

-        public List<ControlStateRuleType> getRule() {

-            if (rule == null) {

-                rule = new ArrayList<ControlStateRuleType>();

-            }

-            return this.rule;

-        }

+	}

 

-    }

+	/**

+	 * <p>

+	 * Java class for anonymous complex type.

+	 * 

+	 * <p>

+	 * The following schema fragment specifies the expected content contained within this class.

+	 * 

+	 * <pre>

+	 * &lt;complexType>

+	 *   &lt;complexContent>

+	 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+	 *       &lt;sequence>

+	 *         &lt;element name="rule" type="{http://eclipse.org/ptp/rm}control-state-rule-type"/>

+	 *       &lt;/sequence>

+	 *     &lt;/restriction>

+	 *   &lt;/complexContent>

+	 * &lt;/complexType>

+	 * </pre>

+	 * 

+	 * 

+	 */

+	@XmlAccessorType(XmlAccessType.FIELD)

+	@XmlType(name = "", propOrder = { "rule" })

+	public static class Not {

 

+		@XmlElement(required = true)

+		protected ControlStateRuleType rule;

 

-    /**

-     * <p>Java class for anonymous complex type.

-     * 

-     * <p>The following schema fragment specifies the expected content contained within this class.

-     * 

-     * <pre>

-     * &lt;complexType>

-     *   &lt;complexContent>

-     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

-     *       &lt;sequence>

-     *         &lt;element name="rule" type="{http://eclipse.org/ptp/rm}control-state-rule-type"/>

-     *       &lt;/sequence>

-     *     &lt;/restriction>

-     *   &lt;/complexContent>

-     * &lt;/complexType>

-     * </pre>

-     * 

-     * 

-     */

-    @XmlAccessorType(XmlAccessType.FIELD)

-    @XmlType(name = "", propOrder = {

-        "rule"

-    })

-    public static class Not {

+		/**

+		 * Gets the value of the rule property.

+		 * 

+		 * @return

+		 *         possible object is {@link ControlStateRuleType }

+		 * 

+		 */

+		public ControlStateRuleType getRule() {

+			return rule;

+		}

 

-        @XmlElement(required = true)

-        protected ControlStateRuleType rule;

+		/**

+		 * Sets the value of the rule property.

+		 * 

+		 * @param value

+		 *            allowed object is {@link ControlStateRuleType }

+		 * 

+		 */

+		public void setRule(ControlStateRuleType value) {

+			this.rule = value;

+		}

 

-        /**

-         * Gets the value of the rule property.

-         * 

-         * @return

-         *     possible object is

-         *     {@link ControlStateRuleType }

-         *     

-         */

-        public ControlStateRuleType getRule() {

-            return rule;

-        }

+	}

 

-        /**

-         * Sets the value of the rule property.

-         * 

-         * @param value

-         *     allowed object is

-         *     {@link ControlStateRuleType }

-         *     

-         */

-        public void setRule(ControlStateRuleType value) {

-            this.rule = value;

-        }

+	/**

+	 * <p>

+	 * Java class for anonymous complex type.

+	 * 

+	 * <p>

+	 * The following schema fragment specifies the expected content contained within this class.

+	 * 

+	 * <pre>

+	 * &lt;complexType>

+	 *   &lt;complexContent>

+	 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+	 *       &lt;sequence>

+	 *         &lt;element name="rule" type="{http://eclipse.org/ptp/rm}control-state-rule-type" maxOccurs="unbounded"/>

+	 *       &lt;/sequence>

+	 *     &lt;/restriction>

+	 *   &lt;/complexContent>

+	 * &lt;/complexType>

+	 * </pre>

+	 * 

+	 * 

+	 */

+	@XmlAccessorType(XmlAccessType.FIELD)

+	@XmlType(name = "", propOrder = { "rule" })

+	public static class Or {

 

-    }

+		@XmlElement(required = true)

+		protected List<ControlStateRuleType> rule;

 

+		/**

+		 * Gets the value of the rule property.

+		 * 

+		 * <p>

+		 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+		 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the rule

+		 * property.

+		 * 

+		 * <p>

+		 * For example, to add a new item, do as follows:

+		 * 

+		 * <pre>

+		 * getRule().add(newItem);

+		 * </pre>

+		 * 

+		 * 

+		 * <p>

+		 * Objects of the following type(s) are allowed in the list {@link ControlStateRuleType }

+		 * 

+		 * 

+		 */

+		public List<ControlStateRuleType> getRule() {

+			if (rule == null) {

+				rule = new ArrayList<ControlStateRuleType>();

+			}

+			return this.rule;

+		}

 

-    /**

-     * <p>Java class for anonymous complex type.

-     * 

-     * <p>The following schema fragment specifies the expected content contained within this class.

-     * 

-     * <pre>

-     * &lt;complexType>

-     *   &lt;complexContent>

-     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

-     *       &lt;sequence>

-     *         &lt;element name="rule" type="{http://eclipse.org/ptp/rm}control-state-rule-type" maxOccurs="unbounded"/>

-     *       &lt;/sequence>

-     *     &lt;/restriction>

-     *   &lt;/complexContent>

-     * &lt;/complexType>

-     * </pre>

-     * 

-     * 

-     */

-    @XmlAccessorType(XmlAccessType.FIELD)

-    @XmlType(name = "", propOrder = {

-        "rule"

-    })

-    public static class Or {

-

-        @XmlElement(required = true)

-        protected List<ControlStateRuleType> rule;

-

-        /**

-         * Gets the value of the rule property.

-         * 

-         * <p>

-         * This accessor method returns a reference to the live list,

-         * not a snapshot. Therefore any modification you make to the

-         * returned list will be present inside the JAXB object.

-         * This is why there is not a <CODE>set</CODE> method for the rule property.

-         * 

-         * <p>

-         * For example, to add a new item, do as follows:

-         * <pre>

-         *    getRule().add(newItem);

-         * </pre>

-         * 

-         * 

-         * <p>

-         * Objects of the following type(s) are allowed in the list

-         * {@link ControlStateRuleType }

-         * 

-         * 

-         */

-        public List<ControlStateRuleType> getRule() {

-            if (rule == null) {

-                rule = new ArrayList<ControlStateRuleType>();

-            }

-            return this.rule;

-        }

-

-    }

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ControlStateType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ControlStateType.java
index 43f62eb..7ad11ab 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ControlStateType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ControlStateType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -13,11 +12,12 @@
 import javax.xml.bind.annotation.XmlElement;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for control-state-type complex type.

+ * <p>

+ * Java class for control-state-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="control-state-type">

@@ -41,117 +41,104 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "control-state-type", propOrder = {

-    "showIf",

-    "hideIf",

-    "enableIf",

-    "disableIf"

-})

+@XmlType(name = "control-state-type", propOrder = { "showIf", "hideIf", "enableIf", "disableIf" })

 public class ControlStateType {

 

-    @XmlElement(name = "show-if")

-    protected ControlStateRuleType showIf;

-    @XmlElement(name = "hide-if")

-    protected ControlStateRuleType hideIf;

-    @XmlElement(name = "enable-if")

-    protected ControlStateRuleType enableIf;

-    @XmlElement(name = "disable-if")

-    protected ControlStateRuleType disableIf;

+	@XmlElement(name = "show-if")

+	protected ControlStateRuleType showIf;

+	@XmlElement(name = "hide-if")

+	protected ControlStateRuleType hideIf;

+	@XmlElement(name = "enable-if")

+	protected ControlStateRuleType enableIf;

+	@XmlElement(name = "disable-if")

+	protected ControlStateRuleType disableIf;

 

-    /**

-     * Gets the value of the showIf property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link ControlStateRuleType }

-     *     

-     */

-    public ControlStateRuleType getShowIf() {

-        return showIf;

-    }

+	/**

+	 * Gets the value of the showIf property.

+	 * 

+	 * @return

+	 *         possible object is {@link ControlStateRuleType }

+	 * 

+	 */

+	public ControlStateRuleType getShowIf() {

+		return showIf;

+	}

 

-    /**

-     * Sets the value of the showIf property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link ControlStateRuleType }

-     *     

-     */

-    public void setShowIf(ControlStateRuleType value) {

-        this.showIf = value;

-    }

+	/**

+	 * Sets the value of the showIf property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link ControlStateRuleType }

+	 * 

+	 */

+	public void setShowIf(ControlStateRuleType value) {

+		this.showIf = value;

+	}

 

-    /**

-     * Gets the value of the hideIf property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link ControlStateRuleType }

-     *     

-     */

-    public ControlStateRuleType getHideIf() {

-        return hideIf;

-    }

+	/**

+	 * Gets the value of the hideIf property.

+	 * 

+	 * @return

+	 *         possible object is {@link ControlStateRuleType }

+	 * 

+	 */

+	public ControlStateRuleType getHideIf() {

+		return hideIf;

+	}

 

-    /**

-     * Sets the value of the hideIf property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link ControlStateRuleType }

-     *     

-     */

-    public void setHideIf(ControlStateRuleType value) {

-        this.hideIf = value;

-    }

+	/**

+	 * Sets the value of the hideIf property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link ControlStateRuleType }

+	 * 

+	 */

+	public void setHideIf(ControlStateRuleType value) {

+		this.hideIf = value;

+	}

 

-    /**

-     * Gets the value of the enableIf property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link ControlStateRuleType }

-     *     

-     */

-    public ControlStateRuleType getEnableIf() {

-        return enableIf;

-    }

+	/**

+	 * Gets the value of the enableIf property.

+	 * 

+	 * @return

+	 *         possible object is {@link ControlStateRuleType }

+	 * 

+	 */

+	public ControlStateRuleType getEnableIf() {

+		return enableIf;

+	}

 

-    /**

-     * Sets the value of the enableIf property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link ControlStateRuleType }

-     *     

-     */

-    public void setEnableIf(ControlStateRuleType value) {

-        this.enableIf = value;

-    }

+	/**

+	 * Sets the value of the enableIf property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link ControlStateRuleType }

+	 * 

+	 */

+	public void setEnableIf(ControlStateRuleType value) {

+		this.enableIf = value;

+	}

 

-    /**

-     * Gets the value of the disableIf property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link ControlStateRuleType }

-     *     

-     */

-    public ControlStateRuleType getDisableIf() {

-        return disableIf;

-    }

+	/**

+	 * Gets the value of the disableIf property.

+	 * 

+	 * @return

+	 *         possible object is {@link ControlStateRuleType }

+	 * 

+	 */

+	public ControlStateRuleType getDisableIf() {

+		return disableIf;

+	}

 

-    /**

-     * Sets the value of the disableIf property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link ControlStateRuleType }

-     *     

-     */

-    public void setDisableIf(ControlStateRuleType value) {

-        this.disableIf = value;

-    }

+	/**

+	 * Sets the value of the disableIf property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link ControlStateRuleType }

+	 * 

+	 */

+	public void setDisableIf(ControlStateRuleType value) {

+		this.disableIf = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ControlType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ControlType.java
index 53751e5..c399c6a 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ControlType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ControlType.java
@@ -2,24 +2,25 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlElement;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for control-type complex type.

+ * <p>

+ * Java class for control-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="control-type">

@@ -58,491 +59,446 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "control-type", propOrder = {

-    "attribute",

-    "managedFiles",

-    "script",

-    "startUpCommand",

-    "submitInteractive",

-    "submitInteractiveDebug",

-    "submitBatch",

-    "submitBatchDebug",

-    "getJobStatus",

-    "terminateJob",

-    "suspendJob",

-    "resumeJob",

-    "holdJob",

-    "releaseJob",

-    "shutDownCommand",

-    "buttonAction",

-    "launchTab"

-})

+@XmlType(name = "control-type", propOrder = { "attribute", "managedFiles", "script", "startUpCommand", "submitInteractive",

+		"submitInteractiveDebug", "submitBatch", "submitBatchDebug", "getJobStatus", "terminateJob", "suspendJob", "resumeJob",

+		"holdJob", "releaseJob", "shutDownCommand", "buttonAction", "launchTab" })

 public class ControlType {

 

-    protected List<AttributeType> attribute;

-    @XmlElement(name = "managed-files")

-    protected List<ManagedFilesType> managedFiles;

-    protected ScriptType script;

-    @XmlElement(name = "start-up-command")

-    protected List<CommandType> startUpCommand;

-    @XmlElement(name = "submit-interactive")

-    protected CommandType submitInteractive;

-    @XmlElement(name = "submit-interactive-debug")

-    protected CommandType submitInteractiveDebug;

-    @XmlElement(name = "submit-batch")

-    protected CommandType submitBatch;

-    @XmlElement(name = "submit-batch-debug")

-    protected CommandType submitBatchDebug;

-    @XmlElement(name = "get-job-status")

-    protected CommandType getJobStatus;

-    @XmlElement(name = "terminate-job")

-    protected CommandType terminateJob;

-    @XmlElement(name = "suspend-job")

-    protected CommandType suspendJob;

-    @XmlElement(name = "resume-job")

-    protected CommandType resumeJob;

-    @XmlElement(name = "hold-job")

-    protected CommandType holdJob;

-    @XmlElement(name = "release-job")

-    protected CommandType releaseJob;

-    @XmlElement(name = "shut-down-command")

-    protected List<CommandType> shutDownCommand;

-    @XmlElement(name = "button-action")

-    protected List<CommandType> buttonAction;

-    @XmlElement(name = "launch-tab")

-    protected LaunchTabType launchTab;

+	protected List<AttributeType> attribute;

+	@XmlElement(name = "managed-files")

+	protected List<ManagedFilesType> managedFiles;

+	protected ScriptType script;

+	@XmlElement(name = "start-up-command")

+	protected List<CommandType> startUpCommand;

+	@XmlElement(name = "submit-interactive")

+	protected CommandType submitInteractive;

+	@XmlElement(name = "submit-interactive-debug")

+	protected CommandType submitInteractiveDebug;

+	@XmlElement(name = "submit-batch")

+	protected CommandType submitBatch;

+	@XmlElement(name = "submit-batch-debug")

+	protected CommandType submitBatchDebug;

+	@XmlElement(name = "get-job-status")

+	protected CommandType getJobStatus;

+	@XmlElement(name = "terminate-job")

+	protected CommandType terminateJob;

+	@XmlElement(name = "suspend-job")

+	protected CommandType suspendJob;

+	@XmlElement(name = "resume-job")

+	protected CommandType resumeJob;

+	@XmlElement(name = "hold-job")

+	protected CommandType holdJob;

+	@XmlElement(name = "release-job")

+	protected CommandType releaseJob;

+	@XmlElement(name = "shut-down-command")

+	protected List<CommandType> shutDownCommand;

+	@XmlElement(name = "button-action")

+	protected List<CommandType> buttonAction;

+	@XmlElement(name = "launch-tab")

+	protected LaunchTabType launchTab;

 

-    /**

-     * Gets the value of the attribute property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the attribute property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getAttribute().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link AttributeType }

-     * 

-     * 

-     */

-    public List<AttributeType> getAttribute() {

-        if (attribute == null) {

-            attribute = new ArrayList<AttributeType>();

-        }

-        return this.attribute;

-    }

+	/**

+	 * Gets the value of the attribute property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the attribute

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getAttribute().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link AttributeType }

+	 * 

+	 * 

+	 */

+	public List<AttributeType> getAttribute() {

+		if (attribute == null) {

+			attribute = new ArrayList<AttributeType>();

+		}

+		return this.attribute;

+	}

 

-    /**

-     * Gets the value of the managedFiles property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the managedFiles property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getManagedFiles().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link ManagedFilesType }

-     * 

-     * 

-     */

-    public List<ManagedFilesType> getManagedFiles() {

-        if (managedFiles == null) {

-            managedFiles = new ArrayList<ManagedFilesType>();

-        }

-        return this.managedFiles;

-    }

+	/**

+	 * Gets the value of the managedFiles property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the managedFiles

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getManagedFiles().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link ManagedFilesType }

+	 * 

+	 * 

+	 */

+	public List<ManagedFilesType> getManagedFiles() {

+		if (managedFiles == null) {

+			managedFiles = new ArrayList<ManagedFilesType>();

+		}

+		return this.managedFiles;

+	}

 

-    /**

-     * Gets the value of the script property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link ScriptType }

-     *     

-     */

-    public ScriptType getScript() {

-        return script;

-    }

+	/**

+	 * Gets the value of the script property.

+	 * 

+	 * @return

+	 *         possible object is {@link ScriptType }

+	 * 

+	 */

+	public ScriptType getScript() {

+		return script;

+	}

 

-    /**

-     * Sets the value of the script property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link ScriptType }

-     *     

-     */

-    public void setScript(ScriptType value) {

-        this.script = value;

-    }

+	/**

+	 * Sets the value of the script property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link ScriptType }

+	 * 

+	 */

+	public void setScript(ScriptType value) {

+		this.script = value;

+	}

 

-    /**

-     * Gets the value of the startUpCommand property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the startUpCommand property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getStartUpCommand().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link CommandType }

-     * 

-     * 

-     */

-    public List<CommandType> getStartUpCommand() {

-        if (startUpCommand == null) {

-            startUpCommand = new ArrayList<CommandType>();

-        }

-        return this.startUpCommand;

-    }

+	/**

+	 * Gets the value of the startUpCommand property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the

+	 * startUpCommand property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getStartUpCommand().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link CommandType }

+	 * 

+	 * 

+	 */

+	public List<CommandType> getStartUpCommand() {

+		if (startUpCommand == null) {

+			startUpCommand = new ArrayList<CommandType>();

+		}

+		return this.startUpCommand;

+	}

 

-    /**

-     * Gets the value of the submitInteractive property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link CommandType }

-     *     

-     */

-    public CommandType getSubmitInteractive() {

-        return submitInteractive;

-    }

+	/**

+	 * Gets the value of the submitInteractive property.

+	 * 

+	 * @return

+	 *         possible object is {@link CommandType }

+	 * 

+	 */

+	public CommandType getSubmitInteractive() {

+		return submitInteractive;

+	}

 

-    /**

-     * Sets the value of the submitInteractive property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link CommandType }

-     *     

-     */

-    public void setSubmitInteractive(CommandType value) {

-        this.submitInteractive = value;

-    }

+	/**

+	 * Sets the value of the submitInteractive property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link CommandType }

+	 * 

+	 */

+	public void setSubmitInteractive(CommandType value) {

+		this.submitInteractive = value;

+	}

 

-    /**

-     * Gets the value of the submitInteractiveDebug property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link CommandType }

-     *     

-     */

-    public CommandType getSubmitInteractiveDebug() {

-        return submitInteractiveDebug;

-    }

+	/**

+	 * Gets the value of the submitInteractiveDebug property.

+	 * 

+	 * @return

+	 *         possible object is {@link CommandType }

+	 * 

+	 */

+	public CommandType getSubmitInteractiveDebug() {

+		return submitInteractiveDebug;

+	}

 

-    /**

-     * Sets the value of the submitInteractiveDebug property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link CommandType }

-     *     

-     */

-    public void setSubmitInteractiveDebug(CommandType value) {

-        this.submitInteractiveDebug = value;

-    }

+	/**

+	 * Sets the value of the submitInteractiveDebug property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link CommandType }

+	 * 

+	 */

+	public void setSubmitInteractiveDebug(CommandType value) {

+		this.submitInteractiveDebug = value;

+	}

 

-    /**

-     * Gets the value of the submitBatch property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link CommandType }

-     *     

-     */

-    public CommandType getSubmitBatch() {

-        return submitBatch;

-    }

+	/**

+	 * Gets the value of the submitBatch property.

+	 * 

+	 * @return

+	 *         possible object is {@link CommandType }

+	 * 

+	 */

+	public CommandType getSubmitBatch() {

+		return submitBatch;

+	}

 

-    /**

-     * Sets the value of the submitBatch property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link CommandType }

-     *     

-     */

-    public void setSubmitBatch(CommandType value) {

-        this.submitBatch = value;

-    }

+	/**

+	 * Sets the value of the submitBatch property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link CommandType }

+	 * 

+	 */

+	public void setSubmitBatch(CommandType value) {

+		this.submitBatch = value;

+	}

 

-    /**

-     * Gets the value of the submitBatchDebug property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link CommandType }

-     *     

-     */

-    public CommandType getSubmitBatchDebug() {

-        return submitBatchDebug;

-    }

+	/**

+	 * Gets the value of the submitBatchDebug property.

+	 * 

+	 * @return

+	 *         possible object is {@link CommandType }

+	 * 

+	 */

+	public CommandType getSubmitBatchDebug() {

+		return submitBatchDebug;

+	}

 

-    /**

-     * Sets the value of the submitBatchDebug property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link CommandType }

-     *     

-     */

-    public void setSubmitBatchDebug(CommandType value) {

-        this.submitBatchDebug = value;

-    }

+	/**

+	 * Sets the value of the submitBatchDebug property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link CommandType }

+	 * 

+	 */

+	public void setSubmitBatchDebug(CommandType value) {

+		this.submitBatchDebug = value;

+	}

 

-    /**

-     * Gets the value of the getJobStatus property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link CommandType }

-     *     

-     */

-    public CommandType getGetJobStatus() {

-        return getJobStatus;

-    }

+	/**

+	 * Gets the value of the getJobStatus property.

+	 * 

+	 * @return

+	 *         possible object is {@link CommandType }

+	 * 

+	 */

+	public CommandType getGetJobStatus() {

+		return getJobStatus;

+	}

 

-    /**

-     * Sets the value of the getJobStatus property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link CommandType }

-     *     

-     */

-    public void setGetJobStatus(CommandType value) {

-        this.getJobStatus = value;

-    }

+	/**

+	 * Sets the value of the getJobStatus property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link CommandType }

+	 * 

+	 */

+	public void setGetJobStatus(CommandType value) {

+		this.getJobStatus = value;

+	}

 

-    /**

-     * Gets the value of the terminateJob property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link CommandType }

-     *     

-     */

-    public CommandType getTerminateJob() {

-        return terminateJob;

-    }

+	/**

+	 * Gets the value of the terminateJob property.

+	 * 

+	 * @return

+	 *         possible object is {@link CommandType }

+	 * 

+	 */

+	public CommandType getTerminateJob() {

+		return terminateJob;

+	}

 

-    /**

-     * Sets the value of the terminateJob property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link CommandType }

-     *     

-     */

-    public void setTerminateJob(CommandType value) {

-        this.terminateJob = value;

-    }

+	/**

+	 * Sets the value of the terminateJob property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link CommandType }

+	 * 

+	 */

+	public void setTerminateJob(CommandType value) {

+		this.terminateJob = value;

+	}

 

-    /**

-     * Gets the value of the suspendJob property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link CommandType }

-     *     

-     */

-    public CommandType getSuspendJob() {

-        return suspendJob;

-    }

+	/**

+	 * Gets the value of the suspendJob property.

+	 * 

+	 * @return

+	 *         possible object is {@link CommandType }

+	 * 

+	 */

+	public CommandType getSuspendJob() {

+		return suspendJob;

+	}

 

-    /**

-     * Sets the value of the suspendJob property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link CommandType }

-     *     

-     */

-    public void setSuspendJob(CommandType value) {

-        this.suspendJob = value;

-    }

+	/**

+	 * Sets the value of the suspendJob property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link CommandType }

+	 * 

+	 */

+	public void setSuspendJob(CommandType value) {

+		this.suspendJob = value;

+	}

 

-    /**

-     * Gets the value of the resumeJob property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link CommandType }

-     *     

-     */

-    public CommandType getResumeJob() {

-        return resumeJob;

-    }

+	/**

+	 * Gets the value of the resumeJob property.

+	 * 

+	 * @return

+	 *         possible object is {@link CommandType }

+	 * 

+	 */

+	public CommandType getResumeJob() {

+		return resumeJob;

+	}

 

-    /**

-     * Sets the value of the resumeJob property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link CommandType }

-     *     

-     */

-    public void setResumeJob(CommandType value) {

-        this.resumeJob = value;

-    }

+	/**

+	 * Sets the value of the resumeJob property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link CommandType }

+	 * 

+	 */

+	public void setResumeJob(CommandType value) {

+		this.resumeJob = value;

+	}

 

-    /**

-     * Gets the value of the holdJob property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link CommandType }

-     *     

-     */

-    public CommandType getHoldJob() {

-        return holdJob;

-    }

+	/**

+	 * Gets the value of the holdJob property.

+	 * 

+	 * @return

+	 *         possible object is {@link CommandType }

+	 * 

+	 */

+	public CommandType getHoldJob() {

+		return holdJob;

+	}

 

-    /**

-     * Sets the value of the holdJob property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link CommandType }

-     *     

-     */

-    public void setHoldJob(CommandType value) {

-        this.holdJob = value;

-    }

+	/**

+	 * Sets the value of the holdJob property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link CommandType }

+	 * 

+	 */

+	public void setHoldJob(CommandType value) {

+		this.holdJob = value;

+	}

 

-    /**

-     * Gets the value of the releaseJob property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link CommandType }

-     *     

-     */

-    public CommandType getReleaseJob() {

-        return releaseJob;

-    }

+	/**

+	 * Gets the value of the releaseJob property.

+	 * 

+	 * @return

+	 *         possible object is {@link CommandType }

+	 * 

+	 */

+	public CommandType getReleaseJob() {

+		return releaseJob;

+	}

 

-    /**

-     * Sets the value of the releaseJob property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link CommandType }

-     *     

-     */

-    public void setReleaseJob(CommandType value) {

-        this.releaseJob = value;

-    }

+	/**

+	 * Sets the value of the releaseJob property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link CommandType }

+	 * 

+	 */

+	public void setReleaseJob(CommandType value) {

+		this.releaseJob = value;

+	}

 

-    /**

-     * Gets the value of the shutDownCommand property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the shutDownCommand property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getShutDownCommand().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link CommandType }

-     * 

-     * 

-     */

-    public List<CommandType> getShutDownCommand() {

-        if (shutDownCommand == null) {

-            shutDownCommand = new ArrayList<CommandType>();

-        }

-        return this.shutDownCommand;

-    }

+	/**

+	 * Gets the value of the shutDownCommand property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the

+	 * shutDownCommand property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getShutDownCommand().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link CommandType }

+	 * 

+	 * 

+	 */

+	public List<CommandType> getShutDownCommand() {

+		if (shutDownCommand == null) {

+			shutDownCommand = new ArrayList<CommandType>();

+		}

+		return this.shutDownCommand;

+	}

 

-    /**

-     * Gets the value of the buttonAction property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the buttonAction property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getButtonAction().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link CommandType }

-     * 

-     * 

-     */

-    public List<CommandType> getButtonAction() {

-        if (buttonAction == null) {

-            buttonAction = new ArrayList<CommandType>();

-        }

-        return this.buttonAction;

-    }

+	/**

+	 * Gets the value of the buttonAction property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the buttonAction

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getButtonAction().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link CommandType }

+	 * 

+	 * 

+	 */

+	public List<CommandType> getButtonAction() {

+		if (buttonAction == null) {

+			buttonAction = new ArrayList<CommandType>();

+		}

+		return this.buttonAction;

+	}

 

-    /**

-     * Gets the value of the launchTab property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link LaunchTabType }

-     *     

-     */

-    public LaunchTabType getLaunchTab() {

-        return launchTab;

-    }

+	/**

+	 * Gets the value of the launchTab property.

+	 * 

+	 * @return

+	 *         possible object is {@link LaunchTabType }

+	 * 

+	 */

+	public LaunchTabType getLaunchTab() {

+		return launchTab;

+	}

 

-    /**

-     * Sets the value of the launchTab property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link LaunchTabType }

-     *     

-     */

-    public void setLaunchTab(LaunchTabType value) {

-        this.launchTab = value;

-    }

+	/**

+	 * Sets the value of the launchTab property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link LaunchTabType }

+	 * 

+	 */

+	public void setLaunchTab(LaunchTabType value) {

+		this.launchTab = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/EntryType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/EntryType.java
index 4bcf8ba..ddb68d9 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/EntryType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/EntryType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -13,11 +12,12 @@
 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for entry-type complex type.

+ * <p>

+ * Java class for entry-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="entry-type">

@@ -40,177 +40,165 @@
 @XmlType(name = "entry-type")

 public class EntryType {

 

-    @XmlAttribute(name = "key")

-    protected String key;

-    @XmlAttribute(name = "keyGroup")

-    protected Integer keyGroup;

-    @XmlAttribute(name = "keyIndex")

-    protected Integer keyIndex;

-    @XmlAttribute(name = "value")

-    protected String value;

-    @XmlAttribute(name = "valueGroup")

-    protected Integer valueGroup;

-    @XmlAttribute(name = "valueIndex")

-    protected Integer valueIndex;

+	@XmlAttribute(name = "key")

+	protected String key;

+	@XmlAttribute(name = "keyGroup")

+	protected Integer keyGroup;

+	@XmlAttribute(name = "keyIndex")

+	protected Integer keyIndex;

+	@XmlAttribute(name = "value")

+	protected String value;

+	@XmlAttribute(name = "valueGroup")

+	protected Integer valueGroup;

+	@XmlAttribute(name = "valueIndex")

+	protected Integer valueIndex;

 

-    /**

-     * Gets the value of the key property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getKey() {

-        return key;

-    }

+	/**

+	 * Gets the value of the key property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getKey() {

+		return key;

+	}

 

-    /**

-     * Sets the value of the key property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setKey(String value) {

-        this.key = value;

-    }

+	/**

+	 * Sets the value of the key property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setKey(String value) {

+		this.key = value;

+	}

 

-    /**

-     * Gets the value of the keyGroup property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public int getKeyGroup() {

-        if (keyGroup == null) {

-            return  0;

-        } else {

-            return keyGroup;

-        }

-    }

+	/**

+	 * Gets the value of the keyGroup property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public int getKeyGroup() {

+		if (keyGroup == null) {

+			return 0;

+		} else {

+			return keyGroup;

+		}

+	}

 

-    /**

-     * Sets the value of the keyGroup property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setKeyGroup(Integer value) {

-        this.keyGroup = value;

-    }

+	/**

+	 * Sets the value of the keyGroup property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setKeyGroup(Integer value) {

+		this.keyGroup = value;

+	}

 

-    /**

-     * Gets the value of the keyIndex property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public int getKeyIndex() {

-        if (keyIndex == null) {

-            return  0;

-        } else {

-            return keyIndex;

-        }

-    }

+	/**

+	 * Gets the value of the keyIndex property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public int getKeyIndex() {

+		if (keyIndex == null) {

+			return 0;

+		} else {

+			return keyIndex;

+		}

+	}

 

-    /**

-     * Sets the value of the keyIndex property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setKeyIndex(Integer value) {

-        this.keyIndex = value;

-    }

+	/**

+	 * Sets the value of the keyIndex property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setKeyIndex(Integer value) {

+		this.keyIndex = value;

+	}

 

-    /**

-     * Gets the value of the value property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getValue() {

-        return value;

-    }

+	/**

+	 * Gets the value of the value property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getValue() {

+		return value;

+	}

 

-    /**

-     * Sets the value of the value property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setValue(String value) {

-        this.value = value;

-    }

+	/**

+	 * Sets the value of the value property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setValue(String value) {

+		this.value = value;

+	}

 

-    /**

-     * Gets the value of the valueGroup property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public int getValueGroup() {

-        if (valueGroup == null) {

-            return  0;

-        } else {

-            return valueGroup;

-        }

-    }

+	/**

+	 * Gets the value of the valueGroup property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public int getValueGroup() {

+		if (valueGroup == null) {

+			return 0;

+		} else {

+			return valueGroup;

+		}

+	}

 

-    /**

-     * Sets the value of the valueGroup property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setValueGroup(Integer value) {

-        this.valueGroup = value;

-    }

+	/**

+	 * Sets the value of the valueGroup property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setValueGroup(Integer value) {

+		this.valueGroup = value;

+	}

 

-    /**

-     * Gets the value of the valueIndex property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public int getValueIndex() {

-        if (valueIndex == null) {

-            return  0;

-        } else {

-            return valueIndex;

-        }

-    }

+	/**

+	 * Gets the value of the valueIndex property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public int getValueIndex() {

+		if (valueIndex == null) {

+			return 0;

+		} else {

+			return valueIndex;

+		}

+	}

 

-    /**

-     * Sets the value of the valueIndex property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setValueIndex(Integer value) {

-        this.valueIndex = value;

-    }

+	/**

+	 * Sets the value of the valueIndex property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setValueIndex(Integer value) {

+		this.valueIndex = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/EnvironmentType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/EnvironmentType.java
index 9f5d0f8..1f190e5 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/EnvironmentType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/EnvironmentType.java
@@ -2,24 +2,25 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for environment-type complex type.

+ * <p>

+ * Java class for environment-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="environment-type">

@@ -39,118 +40,109 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "environment-type", propOrder = {

-    "arg"

-})

+@XmlType(name = "environment-type", propOrder = { "arg" })

 public class EnvironmentType {

 

-    protected List<ArgType> arg;

-    @XmlAttribute(name = "name", required = true)

-    protected String name;

-    @XmlAttribute(name = "value")

-    protected String value;

-    @XmlAttribute(name = "preserve")

-    protected Boolean preserve;

+	protected List<ArgType> arg;

+	@XmlAttribute(name = "name", required = true)

+	protected String name;

+	@XmlAttribute(name = "value")

+	protected String value;

+	@XmlAttribute(name = "preserve")

+	protected Boolean preserve;

 

-    /**

-     * Gets the value of the arg property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the arg property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getArg().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link ArgType }

-     * 

-     * 

-     */

-    public List<ArgType> getArg() {

-        if (arg == null) {

-            arg = new ArrayList<ArgType>();

-        }

-        return this.arg;

-    }

+	/**

+	 * Gets the value of the arg property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the arg

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getArg().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link ArgType }

+	 * 

+	 * 

+	 */

+	public List<ArgType> getArg() {

+		if (arg == null) {

+			arg = new ArrayList<ArgType>();

+		}

+		return this.arg;

+	}

 

-    /**

-     * Gets the value of the name property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getName() {

-        return name;

-    }

+	/**

+	 * Gets the value of the name property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getName() {

+		return name;

+	}

 

-    /**

-     * Sets the value of the name property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setName(String value) {

-        this.name = value;

-    }

+	/**

+	 * Sets the value of the name property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setName(String value) {

+		this.name = value;

+	}

 

-    /**

-     * Gets the value of the value property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getValue() {

-        return value;

-    }

+	/**

+	 * Gets the value of the value property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getValue() {

+		return value;

+	}

 

-    /**

-     * Sets the value of the value property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setValue(String value) {

-        this.value = value;

-    }

+	/**

+	 * Sets the value of the value property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setValue(String value) {

+		this.value = value;

+	}

 

-    /**

-     * Gets the value of the preserve property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public Boolean isPreserve() {

-        return preserve;

-    }

+	/**

+	 * Gets the value of the preserve property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public Boolean isPreserve() {

+		return preserve;

+	}

 

-    /**

-     * Sets the value of the preserve property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setPreserve(Boolean value) {

-        this.preserve = value;

-    }

+	/**

+	 * Sets the value of the preserve property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setPreserve(Boolean value) {

+		this.preserve = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/FileMatchType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/FileMatchType.java
index 6b66012..20f08c7 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/FileMatchType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/FileMatchType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -13,11 +12,12 @@
 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for file-match-type complex type.

+ * <p>

+ * Java class for file-match-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="file-match-type">

@@ -39,139 +39,129 @@
 @XmlType(name = "file-match-type")

 public class FileMatchType {

 

-    @XmlAttribute(name = "efsAttributes")

-    protected String efsAttributes;

-    @XmlAttribute(name = "lastModifiedBefore")

-    protected String lastModifiedBefore;

-    @XmlAttribute(name = "lastModifiedAfter")

-    protected String lastModifiedAfter;

-    @XmlAttribute(name = "length")

-    protected Long length;

-    @XmlAttribute(name = "isDirectory")

-    protected Boolean isDirectory;

+	@XmlAttribute(name = "efsAttributes")

+	protected String efsAttributes;

+	@XmlAttribute(name = "lastModifiedBefore")

+	protected String lastModifiedBefore;

+	@XmlAttribute(name = "lastModifiedAfter")

+	protected String lastModifiedAfter;

+	@XmlAttribute(name = "length")

+	protected Long length;

+	@XmlAttribute(name = "isDirectory")

+	protected Boolean isDirectory;

 

-    /**

-     * Gets the value of the efsAttributes property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getEfsAttributes() {

-        return efsAttributes;

-    }

+	/**

+	 * Gets the value of the efsAttributes property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getEfsAttributes() {

+		return efsAttributes;

+	}

 

-    /**

-     * Sets the value of the efsAttributes property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setEfsAttributes(String value) {

-        this.efsAttributes = value;

-    }

+	/**

+	 * Sets the value of the efsAttributes property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setEfsAttributes(String value) {

+		this.efsAttributes = value;

+	}

 

-    /**

-     * Gets the value of the lastModifiedBefore property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getLastModifiedBefore() {

-        return lastModifiedBefore;

-    }

+	/**

+	 * Gets the value of the lastModifiedBefore property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getLastModifiedBefore() {

+		return lastModifiedBefore;

+	}

 

-    /**

-     * Sets the value of the lastModifiedBefore property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setLastModifiedBefore(String value) {

-        this.lastModifiedBefore = value;

-    }

+	/**

+	 * Sets the value of the lastModifiedBefore property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setLastModifiedBefore(String value) {

+		this.lastModifiedBefore = value;

+	}

 

-    /**

-     * Gets the value of the lastModifiedAfter property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getLastModifiedAfter() {

-        return lastModifiedAfter;

-    }

+	/**

+	 * Gets the value of the lastModifiedAfter property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getLastModifiedAfter() {

+		return lastModifiedAfter;

+	}

 

-    /**

-     * Sets the value of the lastModifiedAfter property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setLastModifiedAfter(String value) {

-        this.lastModifiedAfter = value;

-    }

+	/**

+	 * Sets the value of the lastModifiedAfter property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setLastModifiedAfter(String value) {

+		this.lastModifiedAfter = value;

+	}

 

-    /**

-     * Gets the value of the length property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Long }

-     *     

-     */

-    public Long getLength() {

-        return length;

-    }

+	/**

+	 * Gets the value of the length property.

+	 * 

+	 * @return

+	 *         possible object is {@link Long }

+	 * 

+	 */

+	public Long getLength() {

+		return length;

+	}

 

-    /**

-     * Sets the value of the length property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Long }

-     *     

-     */

-    public void setLength(Long value) {

-        this.length = value;

-    }

+	/**

+	 * Sets the value of the length property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Long }

+	 * 

+	 */

+	public void setLength(Long value) {

+		this.length = value;

+	}

 

-    /**

-     * Gets the value of the isDirectory property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isIsDirectory() {

-        if (isDirectory == null) {

-            return false;

-        } else {

-            return isDirectory;

-        }

-    }

+	/**

+	 * Gets the value of the isDirectory property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isIsDirectory() {

+		if (isDirectory == null) {

+			return false;

+		} else {

+			return isDirectory;

+		}

+	}

 

-    /**

-     * Sets the value of the isDirectory property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setIsDirectory(Boolean value) {

-        this.isDirectory = value;

-    }

+	/**

+	 * Sets the value of the isDirectory property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setIsDirectory(Boolean value) {

+		this.isDirectory = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/FillLayoutType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/FillLayoutType.java
index ce69734..729bb90 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/FillLayoutType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/FillLayoutType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -13,11 +12,12 @@
 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for fill-layout-type complex type.

+ * <p>

+ * Java class for fill-layout-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="fill-layout-type">

@@ -38,109 +38,101 @@
 @XmlType(name = "fill-layout-type")

 public class FillLayoutType {

 

-    @XmlAttribute(name = "type")

-    protected String type;

-    @XmlAttribute(name = "marginHeight")

-    protected Integer marginHeight;

-    @XmlAttribute(name = "marginWidth")

-    protected Integer marginWidth;

-    @XmlAttribute(name = "spacing")

-    protected Integer spacing;

+	@XmlAttribute(name = "type")

+	protected String type;

+	@XmlAttribute(name = "marginHeight")

+	protected Integer marginHeight;

+	@XmlAttribute(name = "marginWidth")

+	protected Integer marginWidth;

+	@XmlAttribute(name = "spacing")

+	protected Integer spacing;

 

-    /**

-     * Gets the value of the type property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getType() {

-        return type;

-    }

+	/**

+	 * Gets the value of the type property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getType() {

+		return type;

+	}

 

-    /**

-     * Sets the value of the type property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setType(String value) {

-        this.type = value;

-    }

+	/**

+	 * Sets the value of the type property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setType(String value) {

+		this.type = value;

+	}

 

-    /**

-     * Gets the value of the marginHeight property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getMarginHeight() {

-        return marginHeight;

-    }

+	/**

+	 * Gets the value of the marginHeight property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getMarginHeight() {

+		return marginHeight;

+	}

 

-    /**

-     * Sets the value of the marginHeight property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setMarginHeight(Integer value) {

-        this.marginHeight = value;

-    }

+	/**

+	 * Sets the value of the marginHeight property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setMarginHeight(Integer value) {

+		this.marginHeight = value;

+	}

 

-    /**

-     * Gets the value of the marginWidth property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getMarginWidth() {

-        return marginWidth;

-    }

+	/**

+	 * Gets the value of the marginWidth property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getMarginWidth() {

+		return marginWidth;

+	}

 

-    /**

-     * Sets the value of the marginWidth property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setMarginWidth(Integer value) {

-        this.marginWidth = value;

-    }

+	/**

+	 * Sets the value of the marginWidth property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setMarginWidth(Integer value) {

+		this.marginWidth = value;

+	}

 

-    /**

-     * Gets the value of the spacing property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getSpacing() {

-        return spacing;

-    }

+	/**

+	 * Gets the value of the spacing property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getSpacing() {

+		return spacing;

+	}

 

-    /**

-     * Sets the value of the spacing property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setSpacing(Integer value) {

-        this.spacing = value;

-    }

+	/**

+	 * Sets the value of the spacing property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setSpacing(Integer value) {

+		this.spacing = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/FontType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/FontType.java
index 87b7cc2..ecb7586 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/FontType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/FontType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -13,11 +12,12 @@
 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for font-type complex type.

+ * <p>

+ * Java class for font-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="font-type">

@@ -45,91 +45,85 @@
 @XmlType(name = "font-type")

 public class FontType {

 

-    @XmlAttribute(name = "name")

-    protected String name;

-    @XmlAttribute(name = "size")

-    protected Integer size;

-    @XmlAttribute(name = "style")

-    protected String style;

+	@XmlAttribute(name = "name")

+	protected String name;

+	@XmlAttribute(name = "size")

+	protected Integer size;

+	@XmlAttribute(name = "style")

+	protected String style;

 

-    /**

-     * Gets the value of the name property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getName() {

-        return name;

-    }

+	/**

+	 * Gets the value of the name property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getName() {

+		return name;

+	}

 

-    /**

-     * Sets the value of the name property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setName(String value) {

-        this.name = value;

-    }

+	/**

+	 * Sets the value of the name property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setName(String value) {

+		this.name = value;

+	}

 

-    /**

-     * Gets the value of the size property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public int getSize() {

-        if (size == null) {

-            return  9;

-        } else {

-            return size;

-        }

-    }

+	/**

+	 * Gets the value of the size property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public int getSize() {

+		if (size == null) {

+			return 9;

+		} else {

+			return size;

+		}

+	}

 

-    /**

-     * Sets the value of the size property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setSize(Integer value) {

-        this.size = value;

-    }

+	/**

+	 * Sets the value of the size property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setSize(Integer value) {

+		this.size = value;

+	}

 

-    /**

-     * Gets the value of the style property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getStyle() {

-        if (style == null) {

-            return "normal";

-        } else {

-            return style;

-        }

-    }

+	/**

+	 * Gets the value of the style property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getStyle() {

+		if (style == null) {

+			return "normal";

+		} else {

+			return style;

+		}

+	}

 

-    /**

-     * Sets the value of the style property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setStyle(String value) {

-        this.style = value;

-    }

+	/**

+	 * Sets the value of the style property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setStyle(String value) {

+		this.style = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/FormAttachmentType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/FormAttachmentType.java
index c3bd464..408bfb5 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/FormAttachmentType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/FormAttachmentType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -13,11 +12,12 @@
 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for form-attachment-type complex type.

+ * <p>

+ * Java class for form-attachment-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="form-attachment-type">

@@ -38,109 +38,101 @@
 @XmlType(name = "form-attachment-type")

 public class FormAttachmentType {

 

-    @XmlAttribute(name = "alignment")

-    protected String alignment;

-    @XmlAttribute(name = "numerator")

-    protected Integer numerator;

-    @XmlAttribute(name = "denominator")

-    protected Integer denominator;

-    @XmlAttribute(name = "offset")

-    protected Integer offset;

+	@XmlAttribute(name = "alignment")

+	protected String alignment;

+	@XmlAttribute(name = "numerator")

+	protected Integer numerator;

+	@XmlAttribute(name = "denominator")

+	protected Integer denominator;

+	@XmlAttribute(name = "offset")

+	protected Integer offset;

 

-    /**

-     * Gets the value of the alignment property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getAlignment() {

-        return alignment;

-    }

+	/**

+	 * Gets the value of the alignment property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getAlignment() {

+		return alignment;

+	}

 

-    /**

-     * Sets the value of the alignment property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setAlignment(String value) {

-        this.alignment = value;

-    }

+	/**

+	 * Sets the value of the alignment property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setAlignment(String value) {

+		this.alignment = value;

+	}

 

-    /**

-     * Gets the value of the numerator property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getNumerator() {

-        return numerator;

-    }

+	/**

+	 * Gets the value of the numerator property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getNumerator() {

+		return numerator;

+	}

 

-    /**

-     * Sets the value of the numerator property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setNumerator(Integer value) {

-        this.numerator = value;

-    }

+	/**

+	 * Sets the value of the numerator property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setNumerator(Integer value) {

+		this.numerator = value;

+	}

 

-    /**

-     * Gets the value of the denominator property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getDenominator() {

-        return denominator;

-    }

+	/**

+	 * Gets the value of the denominator property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getDenominator() {

+		return denominator;

+	}

 

-    /**

-     * Sets the value of the denominator property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setDenominator(Integer value) {

-        this.denominator = value;

-    }

+	/**

+	 * Sets the value of the denominator property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setDenominator(Integer value) {

+		this.denominator = value;

+	}

 

-    /**

-     * Gets the value of the offset property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getOffset() {

-        return offset;

-    }

+	/**

+	 * Gets the value of the offset property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getOffset() {

+		return offset;

+	}

 

-    /**

-     * Sets the value of the offset property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setOffset(Integer value) {

-        this.offset = value;

-    }

+	/**

+	 * Sets the value of the offset property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setOffset(Integer value) {

+		this.offset = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/FormDataType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/FormDataType.java
index 28d63d9..960fa3f 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/FormDataType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/FormDataType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -13,11 +12,12 @@
 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for form-data-type complex type.

+ * <p>

+ * Java class for form-data-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="form-data-type">

@@ -39,165 +39,148 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "form-data-type", propOrder = {

-    "top",

-    "bottom",

-    "left",

-    "right"

-})

+@XmlType(name = "form-data-type", propOrder = { "top", "bottom", "left", "right" })

 public class FormDataType {

 

-    protected FormAttachmentType top;

-    protected FormAttachmentType bottom;

-    protected FormAttachmentType left;

-    protected FormAttachmentType right;

-    @XmlAttribute(name = "height")

-    protected Integer height;

-    @XmlAttribute(name = "width")

-    protected Integer width;

+	protected FormAttachmentType top;

+	protected FormAttachmentType bottom;

+	protected FormAttachmentType left;

+	protected FormAttachmentType right;

+	@XmlAttribute(name = "height")

+	protected Integer height;

+	@XmlAttribute(name = "width")

+	protected Integer width;

 

-    /**

-     * Gets the value of the top property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link FormAttachmentType }

-     *     

-     */

-    public FormAttachmentType getTop() {

-        return top;

-    }

+	/**

+	 * Gets the value of the top property.

+	 * 

+	 * @return

+	 *         possible object is {@link FormAttachmentType }

+	 * 

+	 */

+	public FormAttachmentType getTop() {

+		return top;

+	}

 

-    /**

-     * Sets the value of the top property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link FormAttachmentType }

-     *     

-     */

-    public void setTop(FormAttachmentType value) {

-        this.top = value;

-    }

+	/**

+	 * Sets the value of the top property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link FormAttachmentType }

+	 * 

+	 */

+	public void setTop(FormAttachmentType value) {

+		this.top = value;

+	}

 

-    /**

-     * Gets the value of the bottom property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link FormAttachmentType }

-     *     

-     */

-    public FormAttachmentType getBottom() {

-        return bottom;

-    }

+	/**

+	 * Gets the value of the bottom property.

+	 * 

+	 * @return

+	 *         possible object is {@link FormAttachmentType }

+	 * 

+	 */

+	public FormAttachmentType getBottom() {

+		return bottom;

+	}

 

-    /**

-     * Sets the value of the bottom property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link FormAttachmentType }

-     *     

-     */

-    public void setBottom(FormAttachmentType value) {

-        this.bottom = value;

-    }

+	/**

+	 * Sets the value of the bottom property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link FormAttachmentType }

+	 * 

+	 */

+	public void setBottom(FormAttachmentType value) {

+		this.bottom = value;

+	}

 

-    /**

-     * Gets the value of the left property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link FormAttachmentType }

-     *     

-     */

-    public FormAttachmentType getLeft() {

-        return left;

-    }

+	/**

+	 * Gets the value of the left property.

+	 * 

+	 * @return

+	 *         possible object is {@link FormAttachmentType }

+	 * 

+	 */

+	public FormAttachmentType getLeft() {

+		return left;

+	}

 

-    /**

-     * Sets the value of the left property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link FormAttachmentType }

-     *     

-     */

-    public void setLeft(FormAttachmentType value) {

-        this.left = value;

-    }

+	/**

+	 * Sets the value of the left property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link FormAttachmentType }

+	 * 

+	 */

+	public void setLeft(FormAttachmentType value) {

+		this.left = value;

+	}

 

-    /**

-     * Gets the value of the right property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link FormAttachmentType }

-     *     

-     */

-    public FormAttachmentType getRight() {

-        return right;

-    }

+	/**

+	 * Gets the value of the right property.

+	 * 

+	 * @return

+	 *         possible object is {@link FormAttachmentType }

+	 * 

+	 */

+	public FormAttachmentType getRight() {

+		return right;

+	}

 

-    /**

-     * Sets the value of the right property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link FormAttachmentType }

-     *     

-     */

-    public void setRight(FormAttachmentType value) {

-        this.right = value;

-    }

+	/**

+	 * Sets the value of the right property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link FormAttachmentType }

+	 * 

+	 */

+	public void setRight(FormAttachmentType value) {

+		this.right = value;

+	}

 

-    /**

-     * Gets the value of the height property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getHeight() {

-        return height;

-    }

+	/**

+	 * Gets the value of the height property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getHeight() {

+		return height;

+	}

 

-    /**

-     * Sets the value of the height property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setHeight(Integer value) {

-        this.height = value;

-    }

+	/**

+	 * Sets the value of the height property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setHeight(Integer value) {

+		this.height = value;

+	}

 

-    /**

-     * Gets the value of the width property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getWidth() {

-        return width;

-    }

+	/**

+	 * Gets the value of the width property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getWidth() {

+		return width;

+	}

 

-    /**

-     * Sets the value of the width property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setWidth(Integer value) {

-        this.width = value;

-    }

+	/**

+	 * Sets the value of the width property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setWidth(Integer value) {

+		this.width = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/FormLayoutType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/FormLayoutType.java
index 4fa6f87..0e51b4c 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/FormLayoutType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/FormLayoutType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -13,11 +12,12 @@
 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for form-layout-type complex type.

+ * <p>

+ * Java class for form-layout-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="form-layout-type">

@@ -41,187 +41,173 @@
 @XmlType(name = "form-layout-type")

 public class FormLayoutType {

 

-    @XmlAttribute(name = "marginHeight")

-    protected Integer marginHeight;

-    @XmlAttribute(name = "marginWidth")

-    protected Integer marginWidth;

-    @XmlAttribute(name = "marginTop")

-    protected Integer marginTop;

-    @XmlAttribute(name = "marginBottom")

-    protected Integer marginBottom;

-    @XmlAttribute(name = "marginLeft")

-    protected Integer marginLeft;

-    @XmlAttribute(name = "marginRight")

-    protected Integer marginRight;

-    @XmlAttribute(name = "spacing")

-    protected Integer spacing;

+	@XmlAttribute(name = "marginHeight")

+	protected Integer marginHeight;

+	@XmlAttribute(name = "marginWidth")

+	protected Integer marginWidth;

+	@XmlAttribute(name = "marginTop")

+	protected Integer marginTop;

+	@XmlAttribute(name = "marginBottom")

+	protected Integer marginBottom;

+	@XmlAttribute(name = "marginLeft")

+	protected Integer marginLeft;

+	@XmlAttribute(name = "marginRight")

+	protected Integer marginRight;

+	@XmlAttribute(name = "spacing")

+	protected Integer spacing;

 

-    /**

-     * Gets the value of the marginHeight property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getMarginHeight() {

-        return marginHeight;

-    }

+	/**

+	 * Gets the value of the marginHeight property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getMarginHeight() {

+		return marginHeight;

+	}

 

-    /**

-     * Sets the value of the marginHeight property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setMarginHeight(Integer value) {

-        this.marginHeight = value;

-    }

+	/**

+	 * Sets the value of the marginHeight property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setMarginHeight(Integer value) {

+		this.marginHeight = value;

+	}

 

-    /**

-     * Gets the value of the marginWidth property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getMarginWidth() {

-        return marginWidth;

-    }

+	/**

+	 * Gets the value of the marginWidth property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getMarginWidth() {

+		return marginWidth;

+	}

 

-    /**

-     * Sets the value of the marginWidth property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setMarginWidth(Integer value) {

-        this.marginWidth = value;

-    }

+	/**

+	 * Sets the value of the marginWidth property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setMarginWidth(Integer value) {

+		this.marginWidth = value;

+	}

 

-    /**

-     * Gets the value of the marginTop property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getMarginTop() {

-        return marginTop;

-    }

+	/**

+	 * Gets the value of the marginTop property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getMarginTop() {

+		return marginTop;

+	}

 

-    /**

-     * Sets the value of the marginTop property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setMarginTop(Integer value) {

-        this.marginTop = value;

-    }

+	/**

+	 * Sets the value of the marginTop property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setMarginTop(Integer value) {

+		this.marginTop = value;

+	}

 

-    /**

-     * Gets the value of the marginBottom property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getMarginBottom() {

-        return marginBottom;

-    }

+	/**

+	 * Gets the value of the marginBottom property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getMarginBottom() {

+		return marginBottom;

+	}

 

-    /**

-     * Sets the value of the marginBottom property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setMarginBottom(Integer value) {

-        this.marginBottom = value;

-    }

+	/**

+	 * Sets the value of the marginBottom property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setMarginBottom(Integer value) {

+		this.marginBottom = value;

+	}

 

-    /**

-     * Gets the value of the marginLeft property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getMarginLeft() {

-        return marginLeft;

-    }

+	/**

+	 * Gets the value of the marginLeft property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getMarginLeft() {

+		return marginLeft;

+	}

 

-    /**

-     * Sets the value of the marginLeft property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setMarginLeft(Integer value) {

-        this.marginLeft = value;

-    }

+	/**

+	 * Sets the value of the marginLeft property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setMarginLeft(Integer value) {

+		this.marginLeft = value;

+	}

 

-    /**

-     * Gets the value of the marginRight property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getMarginRight() {

-        return marginRight;

-    }

+	/**

+	 * Gets the value of the marginRight property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getMarginRight() {

+		return marginRight;

+	}

 

-    /**

-     * Sets the value of the marginRight property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setMarginRight(Integer value) {

-        this.marginRight = value;

-    }

+	/**

+	 * Sets the value of the marginRight property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setMarginRight(Integer value) {

+		this.marginRight = value;

+	}

 

-    /**

-     * Gets the value of the spacing property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getSpacing() {

-        return spacing;

-    }

+	/**

+	 * Gets the value of the spacing property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getSpacing() {

+		return spacing;

+	}

 

-    /**

-     * Sets the value of the spacing property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setSpacing(Integer value) {

-        this.spacing = value;

-    }

+	/**

+	 * Sets the value of the spacing property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setSpacing(Integer value) {

+		this.spacing = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/GridDataType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/GridDataType.java
index 1a5d9e7..3a9c487 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/GridDataType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/GridDataType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -13,11 +12,12 @@
 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for grid-data-type complex type.

+ * <p>

+ * Java class for grid-data-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="grid-data-type">

@@ -47,351 +47,325 @@
 @XmlType(name = "grid-data-type")

 public class GridDataType {

 

-    @XmlAttribute(name = "style")

-    protected String style;

-    @XmlAttribute(name = "horizontalAlign")

-    protected String horizontalAlign;

-    @XmlAttribute(name = "verticalAlign")

-    protected String verticalAlign;

-    @XmlAttribute(name = "grabExcessHorizontal")

-    protected Boolean grabExcessHorizontal;

-    @XmlAttribute(name = "grabExcessVertical")

-    protected Boolean grabExcessVertical;

-    @XmlAttribute(name = "horizontalSpan")

-    protected Integer horizontalSpan;

-    @XmlAttribute(name = "verticalSpan")

-    protected Integer verticalSpan;

-    @XmlAttribute(name = "horizontalIndent")

-    protected Integer horizontalIndent;

-    @XmlAttribute(name = "verticalIndent")

-    protected Integer verticalIndent;

-    @XmlAttribute(name = "minHeight")

-    protected Integer minHeight;

-    @XmlAttribute(name = "minWidth")

-    protected Integer minWidth;

-    @XmlAttribute(name = "heightHint")

-    protected Integer heightHint;

-    @XmlAttribute(name = "widthHint")

-    protected Integer widthHint;

+	@XmlAttribute(name = "style")

+	protected String style;

+	@XmlAttribute(name = "horizontalAlign")

+	protected String horizontalAlign;

+	@XmlAttribute(name = "verticalAlign")

+	protected String verticalAlign;

+	@XmlAttribute(name = "grabExcessHorizontal")

+	protected Boolean grabExcessHorizontal;

+	@XmlAttribute(name = "grabExcessVertical")

+	protected Boolean grabExcessVertical;

+	@XmlAttribute(name = "horizontalSpan")

+	protected Integer horizontalSpan;

+	@XmlAttribute(name = "verticalSpan")

+	protected Integer verticalSpan;

+	@XmlAttribute(name = "horizontalIndent")

+	protected Integer horizontalIndent;

+	@XmlAttribute(name = "verticalIndent")

+	protected Integer verticalIndent;

+	@XmlAttribute(name = "minHeight")

+	protected Integer minHeight;

+	@XmlAttribute(name = "minWidth")

+	protected Integer minWidth;

+	@XmlAttribute(name = "heightHint")

+	protected Integer heightHint;

+	@XmlAttribute(name = "widthHint")

+	protected Integer widthHint;

 

-    /**

-     * Gets the value of the style property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getStyle() {

-        return style;

-    }

+	/**

+	 * Gets the value of the style property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getStyle() {

+		return style;

+	}

 

-    /**

-     * Sets the value of the style property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setStyle(String value) {

-        this.style = value;

-    }

+	/**

+	 * Sets the value of the style property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setStyle(String value) {

+		this.style = value;

+	}

 

-    /**

-     * Gets the value of the horizontalAlign property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getHorizontalAlign() {

-        return horizontalAlign;

-    }

+	/**

+	 * Gets the value of the horizontalAlign property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getHorizontalAlign() {

+		return horizontalAlign;

+	}

 

-    /**

-     * Sets the value of the horizontalAlign property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setHorizontalAlign(String value) {

-        this.horizontalAlign = value;

-    }

+	/**

+	 * Sets the value of the horizontalAlign property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setHorizontalAlign(String value) {

+		this.horizontalAlign = value;

+	}

 

-    /**

-     * Gets the value of the verticalAlign property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getVerticalAlign() {

-        return verticalAlign;

-    }

+	/**

+	 * Gets the value of the verticalAlign property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getVerticalAlign() {

+		return verticalAlign;

+	}

 

-    /**

-     * Sets the value of the verticalAlign property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setVerticalAlign(String value) {

-        this.verticalAlign = value;

-    }

+	/**

+	 * Sets the value of the verticalAlign property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setVerticalAlign(String value) {

+		this.verticalAlign = value;

+	}

 

-    /**

-     * Gets the value of the grabExcessHorizontal property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isGrabExcessHorizontal() {

-        if (grabExcessHorizontal == null) {

-            return false;

-        } else {

-            return grabExcessHorizontal;

-        }

-    }

+	/**

+	 * Gets the value of the grabExcessHorizontal property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isGrabExcessHorizontal() {

+		if (grabExcessHorizontal == null) {

+			return false;

+		} else {

+			return grabExcessHorizontal;

+		}

+	}

 

-    /**

-     * Sets the value of the grabExcessHorizontal property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setGrabExcessHorizontal(Boolean value) {

-        this.grabExcessHorizontal = value;

-    }

+	/**

+	 * Sets the value of the grabExcessHorizontal property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setGrabExcessHorizontal(Boolean value) {

+		this.grabExcessHorizontal = value;

+	}

 

-    /**

-     * Gets the value of the grabExcessVertical property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isGrabExcessVertical() {

-        if (grabExcessVertical == null) {

-            return false;

-        } else {

-            return grabExcessVertical;

-        }

-    }

+	/**

+	 * Gets the value of the grabExcessVertical property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isGrabExcessVertical() {

+		if (grabExcessVertical == null) {

+			return false;

+		} else {

+			return grabExcessVertical;

+		}

+	}

 

-    /**

-     * Sets the value of the grabExcessVertical property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setGrabExcessVertical(Boolean value) {

-        this.grabExcessVertical = value;

-    }

+	/**

+	 * Sets the value of the grabExcessVertical property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setGrabExcessVertical(Boolean value) {

+		this.grabExcessVertical = value;

+	}

 

-    /**

-     * Gets the value of the horizontalSpan property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getHorizontalSpan() {

-        return horizontalSpan;

-    }

+	/**

+	 * Gets the value of the horizontalSpan property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getHorizontalSpan() {

+		return horizontalSpan;

+	}

 

-    /**

-     * Sets the value of the horizontalSpan property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setHorizontalSpan(Integer value) {

-        this.horizontalSpan = value;

-    }

+	/**

+	 * Sets the value of the horizontalSpan property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setHorizontalSpan(Integer value) {

+		this.horizontalSpan = value;

+	}

 

-    /**

-     * Gets the value of the verticalSpan property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getVerticalSpan() {

-        return verticalSpan;

-    }

+	/**

+	 * Gets the value of the verticalSpan property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getVerticalSpan() {

+		return verticalSpan;

+	}

 

-    /**

-     * Sets the value of the verticalSpan property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setVerticalSpan(Integer value) {

-        this.verticalSpan = value;

-    }

+	/**

+	 * Sets the value of the verticalSpan property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setVerticalSpan(Integer value) {

+		this.verticalSpan = value;

+	}

 

-    /**

-     * Gets the value of the horizontalIndent property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getHorizontalIndent() {

-        return horizontalIndent;

-    }

+	/**

+	 * Gets the value of the horizontalIndent property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getHorizontalIndent() {

+		return horizontalIndent;

+	}

 

-    /**

-     * Sets the value of the horizontalIndent property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setHorizontalIndent(Integer value) {

-        this.horizontalIndent = value;

-    }

+	/**

+	 * Sets the value of the horizontalIndent property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setHorizontalIndent(Integer value) {

+		this.horizontalIndent = value;

+	}

 

-    /**

-     * Gets the value of the verticalIndent property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getVerticalIndent() {

-        return verticalIndent;

-    }

+	/**

+	 * Gets the value of the verticalIndent property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getVerticalIndent() {

+		return verticalIndent;

+	}

 

-    /**

-     * Sets the value of the verticalIndent property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setVerticalIndent(Integer value) {

-        this.verticalIndent = value;

-    }

+	/**

+	 * Sets the value of the verticalIndent property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setVerticalIndent(Integer value) {

+		this.verticalIndent = value;

+	}

 

-    /**

-     * Gets the value of the minHeight property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getMinHeight() {

-        return minHeight;

-    }

+	/**

+	 * Gets the value of the minHeight property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getMinHeight() {

+		return minHeight;

+	}

 

-    /**

-     * Sets the value of the minHeight property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setMinHeight(Integer value) {

-        this.minHeight = value;

-    }

+	/**

+	 * Sets the value of the minHeight property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setMinHeight(Integer value) {

+		this.minHeight = value;

+	}

 

-    /**

-     * Gets the value of the minWidth property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getMinWidth() {

-        return minWidth;

-    }

+	/**

+	 * Gets the value of the minWidth property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getMinWidth() {

+		return minWidth;

+	}

 

-    /**

-     * Sets the value of the minWidth property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setMinWidth(Integer value) {

-        this.minWidth = value;

-    }

+	/**

+	 * Sets the value of the minWidth property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setMinWidth(Integer value) {

+		this.minWidth = value;

+	}

 

-    /**

-     * Gets the value of the heightHint property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getHeightHint() {

-        return heightHint;

-    }

+	/**

+	 * Gets the value of the heightHint property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getHeightHint() {

+		return heightHint;

+	}

 

-    /**

-     * Sets the value of the heightHint property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setHeightHint(Integer value) {

-        this.heightHint = value;

-    }

+	/**

+	 * Sets the value of the heightHint property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setHeightHint(Integer value) {

+		this.heightHint = value;

+	}

 

-    /**

-     * Gets the value of the widthHint property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getWidthHint() {

-        return widthHint;

-    }

+	/**

+	 * Gets the value of the widthHint property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getWidthHint() {

+		return widthHint;

+	}

 

-    /**

-     * Sets the value of the widthHint property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setWidthHint(Integer value) {

-        this.widthHint = value;

-    }

+	/**

+	 * Sets the value of the widthHint property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setWidthHint(Integer value) {

+		this.widthHint = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/GridLayoutType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/GridLayoutType.java
index 8a473c2..15800a0 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/GridLayoutType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/GridLayoutType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -13,11 +12,12 @@
 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for grid-layout-type complex type.

+ * <p>

+ * Java class for grid-layout-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="grid-layout-type">

@@ -44,269 +44,249 @@
 @XmlType(name = "grid-layout-type")

 public class GridLayoutType {

 

-    @XmlAttribute(name = "numColumns")

-    protected Integer numColumns;

-    @XmlAttribute(name = "makeColumnsEqualWidth")

-    protected Boolean makeColumnsEqualWidth;

-    @XmlAttribute(name = "marginHeight")

-    protected Integer marginHeight;

-    @XmlAttribute(name = "marginWidth")

-    protected Integer marginWidth;

-    @XmlAttribute(name = "marginTop")

-    protected Integer marginTop;

-    @XmlAttribute(name = "marginBottom")

-    protected Integer marginBottom;

-    @XmlAttribute(name = "marginLeft")

-    protected Integer marginLeft;

-    @XmlAttribute(name = "marginRight")

-    protected Integer marginRight;

-    @XmlAttribute(name = "horizontalSpacing")

-    protected Integer horizontalSpacing;

-    @XmlAttribute(name = "verticalSpacing")

-    protected Integer verticalSpacing;

+	@XmlAttribute(name = "numColumns")

+	protected Integer numColumns;

+	@XmlAttribute(name = "makeColumnsEqualWidth")

+	protected Boolean makeColumnsEqualWidth;

+	@XmlAttribute(name = "marginHeight")

+	protected Integer marginHeight;

+	@XmlAttribute(name = "marginWidth")

+	protected Integer marginWidth;

+	@XmlAttribute(name = "marginTop")

+	protected Integer marginTop;

+	@XmlAttribute(name = "marginBottom")

+	protected Integer marginBottom;

+	@XmlAttribute(name = "marginLeft")

+	protected Integer marginLeft;

+	@XmlAttribute(name = "marginRight")

+	protected Integer marginRight;

+	@XmlAttribute(name = "horizontalSpacing")

+	protected Integer horizontalSpacing;

+	@XmlAttribute(name = "verticalSpacing")

+	protected Integer verticalSpacing;

 

-    /**

-     * Gets the value of the numColumns property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getNumColumns() {

-        return numColumns;

-    }

+	/**

+	 * Gets the value of the numColumns property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getNumColumns() {

+		return numColumns;

+	}

 

-    /**

-     * Sets the value of the numColumns property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setNumColumns(Integer value) {

-        this.numColumns = value;

-    }

+	/**

+	 * Sets the value of the numColumns property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setNumColumns(Integer value) {

+		this.numColumns = value;

+	}

 

-    /**

-     * Gets the value of the makeColumnsEqualWidth property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isMakeColumnsEqualWidth() {

-        if (makeColumnsEqualWidth == null) {

-            return false;

-        } else {

-            return makeColumnsEqualWidth;

-        }

-    }

+	/**

+	 * Gets the value of the makeColumnsEqualWidth property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isMakeColumnsEqualWidth() {

+		if (makeColumnsEqualWidth == null) {

+			return false;

+		} else {

+			return makeColumnsEqualWidth;

+		}

+	}

 

-    /**

-     * Sets the value of the makeColumnsEqualWidth property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setMakeColumnsEqualWidth(Boolean value) {

-        this.makeColumnsEqualWidth = value;

-    }

+	/**

+	 * Sets the value of the makeColumnsEqualWidth property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setMakeColumnsEqualWidth(Boolean value) {

+		this.makeColumnsEqualWidth = value;

+	}

 

-    /**

-     * Gets the value of the marginHeight property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getMarginHeight() {

-        return marginHeight;

-    }

+	/**

+	 * Gets the value of the marginHeight property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getMarginHeight() {

+		return marginHeight;

+	}

 

-    /**

-     * Sets the value of the marginHeight property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setMarginHeight(Integer value) {

-        this.marginHeight = value;

-    }

+	/**

+	 * Sets the value of the marginHeight property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setMarginHeight(Integer value) {

+		this.marginHeight = value;

+	}

 

-    /**

-     * Gets the value of the marginWidth property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getMarginWidth() {

-        return marginWidth;

-    }

+	/**

+	 * Gets the value of the marginWidth property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getMarginWidth() {

+		return marginWidth;

+	}

 

-    /**

-     * Sets the value of the marginWidth property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setMarginWidth(Integer value) {

-        this.marginWidth = value;

-    }

+	/**

+	 * Sets the value of the marginWidth property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setMarginWidth(Integer value) {

+		this.marginWidth = value;

+	}

 

-    /**

-     * Gets the value of the marginTop property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getMarginTop() {

-        return marginTop;

-    }

+	/**

+	 * Gets the value of the marginTop property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getMarginTop() {

+		return marginTop;

+	}

 

-    /**

-     * Sets the value of the marginTop property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setMarginTop(Integer value) {

-        this.marginTop = value;

-    }

+	/**

+	 * Sets the value of the marginTop property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setMarginTop(Integer value) {

+		this.marginTop = value;

+	}

 

-    /**

-     * Gets the value of the marginBottom property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getMarginBottom() {

-        return marginBottom;

-    }

+	/**

+	 * Gets the value of the marginBottom property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getMarginBottom() {

+		return marginBottom;

+	}

 

-    /**

-     * Sets the value of the marginBottom property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setMarginBottom(Integer value) {

-        this.marginBottom = value;

-    }

+	/**

+	 * Sets the value of the marginBottom property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setMarginBottom(Integer value) {

+		this.marginBottom = value;

+	}

 

-    /**

-     * Gets the value of the marginLeft property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getMarginLeft() {

-        return marginLeft;

-    }

+	/**

+	 * Gets the value of the marginLeft property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getMarginLeft() {

+		return marginLeft;

+	}

 

-    /**

-     * Sets the value of the marginLeft property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setMarginLeft(Integer value) {

-        this.marginLeft = value;

-    }

+	/**

+	 * Sets the value of the marginLeft property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setMarginLeft(Integer value) {

+		this.marginLeft = value;

+	}

 

-    /**

-     * Gets the value of the marginRight property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getMarginRight() {

-        return marginRight;

-    }

+	/**

+	 * Gets the value of the marginRight property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getMarginRight() {

+		return marginRight;

+	}

 

-    /**

-     * Sets the value of the marginRight property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setMarginRight(Integer value) {

-        this.marginRight = value;

-    }

+	/**

+	 * Sets the value of the marginRight property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setMarginRight(Integer value) {

+		this.marginRight = value;

+	}

 

-    /**

-     * Gets the value of the horizontalSpacing property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getHorizontalSpacing() {

-        return horizontalSpacing;

-    }

+	/**

+	 * Gets the value of the horizontalSpacing property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getHorizontalSpacing() {

+		return horizontalSpacing;

+	}

 

-    /**

-     * Sets the value of the horizontalSpacing property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setHorizontalSpacing(Integer value) {

-        this.horizontalSpacing = value;

-    }

+	/**

+	 * Sets the value of the horizontalSpacing property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setHorizontalSpacing(Integer value) {

+		this.horizontalSpacing = value;

+	}

 

-    /**

-     * Gets the value of the verticalSpacing property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getVerticalSpacing() {

-        return verticalSpacing;

-    }

+	/**

+	 * Gets the value of the verticalSpacing property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getVerticalSpacing() {

+		return verticalSpacing;

+	}

 

-    /**

-     * Sets the value of the verticalSpacing property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setVerticalSpacing(Integer value) {

-        this.verticalSpacing = value;

-    }

+	/**

+	 * Sets the value of the verticalSpacing property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setVerticalSpacing(Integer value) {

+		this.verticalSpacing = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/LaunchTabType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/LaunchTabType.java
index 00cbec3..b3e8b71 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/LaunchTabType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/LaunchTabType.java
@@ -2,25 +2,26 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlElement;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for launch-tab-type complex type.

+ * <p>

+ * Java class for launch-tab-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="launch-tab-type">

@@ -49,149 +50,138 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "launch-tab-type", propOrder = {

-    "dynamic",

-    "_import"

-})

+@XmlType(name = "launch-tab-type", propOrder = { "dynamic", "_import" })

 public class LaunchTabType {

 

-    protected List<TabControllerType> dynamic;

-    @XmlElement(name = "import")

-    protected LaunchTabType.Import _import;

+	protected List<TabControllerType> dynamic;

+	@XmlElement(name = "import")

+	protected LaunchTabType.Import _import;

 

-    /**

-     * Gets the value of the dynamic property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the dynamic property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getDynamic().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link TabControllerType }

-     * 

-     * 

-     */

-    public List<TabControllerType> getDynamic() {

-        if (dynamic == null) {

-            dynamic = new ArrayList<TabControllerType>();

-        }

-        return this.dynamic;

-    }

+	/**

+	 * Gets the value of the dynamic property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the dynamic

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getDynamic().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link TabControllerType }

+	 * 

+	 * 

+	 */

+	public List<TabControllerType> getDynamic() {

+		if (dynamic == null) {

+			dynamic = new ArrayList<TabControllerType>();

+		}

+		return this.dynamic;

+	}

 

-    /**

-     * Gets the value of the import property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link LaunchTabType.Import }

-     *     

-     */

-    public LaunchTabType.Import getImport() {

-        return _import;

-    }

+	/**

+	 * Gets the value of the import property.

+	 * 

+	 * @return

+	 *         possible object is {@link LaunchTabType.Import }

+	 * 

+	 */

+	public LaunchTabType.Import getImport() {

+		return _import;

+	}

 

-    /**

-     * Sets the value of the import property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link LaunchTabType.Import }

-     *     

-     */

-    public void setImport(LaunchTabType.Import value) {

-        this._import = value;

-    }

+	/**

+	 * Sets the value of the import property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link LaunchTabType.Import }

+	 * 

+	 */

+	public void setImport(LaunchTabType.Import value) {

+		this._import = value;

+	}

 

+	/**

+	 * <p>

+	 * Java class for anonymous complex type.

+	 * 

+	 * <p>

+	 * The following schema fragment specifies the expected content contained within this class.

+	 * 

+	 * <pre>

+	 * &lt;complexType>

+	 *   &lt;complexContent>

+	 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+	 *       &lt;sequence>

+	 *         &lt;element name="export-for-override" type="{http://eclipse.org/ptp/rm}attribute-viewer-type" minOccurs="0"/>

+	 *       &lt;/sequence>

+	 *       &lt;attribute name="title" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />

+	 *     &lt;/restriction>

+	 *   &lt;/complexContent>

+	 * &lt;/complexType>

+	 * </pre>

+	 * 

+	 * 

+	 */

+	@XmlAccessorType(XmlAccessType.FIELD)

+	@XmlType(name = "", propOrder = { "exportForOverride" })

+	public static class Import {

 

-    /**

-     * <p>Java class for anonymous complex type.

-     * 

-     * <p>The following schema fragment specifies the expected content contained within this class.

-     * 

-     * <pre>

-     * &lt;complexType>

-     *   &lt;complexContent>

-     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

-     *       &lt;sequence>

-     *         &lt;element name="export-for-override" type="{http://eclipse.org/ptp/rm}attribute-viewer-type" minOccurs="0"/>

-     *       &lt;/sequence>

-     *       &lt;attribute name="title" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />

-     *     &lt;/restriction>

-     *   &lt;/complexContent>

-     * &lt;/complexType>

-     * </pre>

-     * 

-     * 

-     */

-    @XmlAccessorType(XmlAccessType.FIELD)

-    @XmlType(name = "", propOrder = {

-        "exportForOverride"

-    })

-    public static class Import {

+		@XmlElement(name = "export-for-override")

+		protected AttributeViewerType exportForOverride;

+		@XmlAttribute(name = "title", required = true)

+		protected String title;

 

-        @XmlElement(name = "export-for-override")

-        protected AttributeViewerType exportForOverride;

-        @XmlAttribute(name = "title", required = true)

-        protected String title;

+		/**

+		 * Gets the value of the exportForOverride property.

+		 * 

+		 * @return

+		 *         possible object is {@link AttributeViewerType }

+		 * 

+		 */

+		public AttributeViewerType getExportForOverride() {

+			return exportForOverride;

+		}

 

-        /**

-         * Gets the value of the exportForOverride property.

-         * 

-         * @return

-         *     possible object is

-         *     {@link AttributeViewerType }

-         *     

-         */

-        public AttributeViewerType getExportForOverride() {

-            return exportForOverride;

-        }

+		/**

+		 * Sets the value of the exportForOverride property.

+		 * 

+		 * @param value

+		 *            allowed object is {@link AttributeViewerType }

+		 * 

+		 */

+		public void setExportForOverride(AttributeViewerType value) {

+			this.exportForOverride = value;

+		}

 

-        /**

-         * Sets the value of the exportForOverride property.

-         * 

-         * @param value

-         *     allowed object is

-         *     {@link AttributeViewerType }

-         *     

-         */

-        public void setExportForOverride(AttributeViewerType value) {

-            this.exportForOverride = value;

-        }

+		/**

+		 * Gets the value of the title property.

+		 * 

+		 * @return

+		 *         possible object is {@link String }

+		 * 

+		 */

+		public String getTitle() {

+			return title;

+		}

 

-        /**

-         * Gets the value of the title property.

-         * 

-         * @return

-         *     possible object is

-         *     {@link String }

-         *     

-         */

-        public String getTitle() {

-            return title;

-        }

+		/**

+		 * Sets the value of the title property.

+		 * 

+		 * @param value

+		 *            allowed object is {@link String }

+		 * 

+		 */

+		public void setTitle(String value) {

+			this.title = value;

+		}

 

-        /**

-         * Sets the value of the title property.

-         * 

-         * @param value

-         *     allowed object is

-         *     {@link String }

-         *     

-         */

-        public void setTitle(String value) {

-            this.title = value;

-        }

-

-    }

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/LayoutDataType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/LayoutDataType.java
index 0f90f3f..f705b75 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/LayoutDataType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/LayoutDataType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -13,11 +12,12 @@
 import javax.xml.bind.annotation.XmlElement;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for layout-data-type complex type.

+ * <p>

+ * Java class for layout-data-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="layout-data-type">

@@ -36,90 +36,80 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "layout-data-type", propOrder = {

-    "rowData",

-    "gridData",

-    "formData"

-})

+@XmlType(name = "layout-data-type", propOrder = { "rowData", "gridData", "formData" })

 public class LayoutDataType {

 

-    @XmlElement(name = "row-data")

-    protected RowDataType rowData;

-    @XmlElement(name = "grid-data")

-    protected GridDataType gridData;

-    @XmlElement(name = "form-data")

-    protected FormDataType formData;

+	@XmlElement(name = "row-data")

+	protected RowDataType rowData;

+	@XmlElement(name = "grid-data")

+	protected GridDataType gridData;

+	@XmlElement(name = "form-data")

+	protected FormDataType formData;

 

-    /**

-     * Gets the value of the rowData property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link RowDataType }

-     *     

-     */

-    public RowDataType getRowData() {

-        return rowData;

-    }

+	/**

+	 * Gets the value of the rowData property.

+	 * 

+	 * @return

+	 *         possible object is {@link RowDataType }

+	 * 

+	 */

+	public RowDataType getRowData() {

+		return rowData;

+	}

 

-    /**

-     * Sets the value of the rowData property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link RowDataType }

-     *     

-     */

-    public void setRowData(RowDataType value) {

-        this.rowData = value;

-    }

+	/**

+	 * Sets the value of the rowData property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link RowDataType }

+	 * 

+	 */

+	public void setRowData(RowDataType value) {

+		this.rowData = value;

+	}

 

-    /**

-     * Gets the value of the gridData property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link GridDataType }

-     *     

-     */

-    public GridDataType getGridData() {

-        return gridData;

-    }

+	/**

+	 * Gets the value of the gridData property.

+	 * 

+	 * @return

+	 *         possible object is {@link GridDataType }

+	 * 

+	 */

+	public GridDataType getGridData() {

+		return gridData;

+	}

 

-    /**

-     * Sets the value of the gridData property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link GridDataType }

-     *     

-     */

-    public void setGridData(GridDataType value) {

-        this.gridData = value;

-    }

+	/**

+	 * Sets the value of the gridData property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link GridDataType }

+	 * 

+	 */

+	public void setGridData(GridDataType value) {

+		this.gridData = value;

+	}

 

-    /**

-     * Gets the value of the formData property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link FormDataType }

-     *     

-     */

-    public FormDataType getFormData() {

-        return formData;

-    }

+	/**

+	 * Gets the value of the formData property.

+	 * 

+	 * @return

+	 *         possible object is {@link FormDataType }

+	 * 

+	 */

+	public FormDataType getFormData() {

+		return formData;

+	}

 

-    /**

-     * Sets the value of the formData property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link FormDataType }

-     *     

-     */

-    public void setFormData(FormDataType value) {

-        this.formData = value;

-    }

+	/**

+	 * Sets the value of the formData property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link FormDataType }

+	 * 

+	 */

+	public void setFormData(FormDataType value) {

+		this.formData = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/LayoutType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/LayoutType.java
index fe77415..c7e8daf 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/LayoutType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/LayoutType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -13,11 +12,12 @@
 import javax.xml.bind.annotation.XmlElement;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for layout-type complex type.

+ * <p>

+ * Java class for layout-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="layout-type">

@@ -37,117 +37,104 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "layout-type", propOrder = {

-    "fillLayout",

-    "rowLayout",

-    "gridLayout",

-    "formLayout"

-})

+@XmlType(name = "layout-type", propOrder = { "fillLayout", "rowLayout", "gridLayout", "formLayout" })

 public class LayoutType {

 

-    @XmlElement(name = "fill-layout")

-    protected FillLayoutType fillLayout;

-    @XmlElement(name = "row-layout")

-    protected RowLayoutType rowLayout;

-    @XmlElement(name = "grid-layout")

-    protected GridLayoutType gridLayout;

-    @XmlElement(name = "form-layout")

-    protected FormLayoutType formLayout;

+	@XmlElement(name = "fill-layout")

+	protected FillLayoutType fillLayout;

+	@XmlElement(name = "row-layout")

+	protected RowLayoutType rowLayout;

+	@XmlElement(name = "grid-layout")

+	protected GridLayoutType gridLayout;

+	@XmlElement(name = "form-layout")

+	protected FormLayoutType formLayout;

 

-    /**

-     * Gets the value of the fillLayout property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link FillLayoutType }

-     *     

-     */

-    public FillLayoutType getFillLayout() {

-        return fillLayout;

-    }

+	/**

+	 * Gets the value of the fillLayout property.

+	 * 

+	 * @return

+	 *         possible object is {@link FillLayoutType }

+	 * 

+	 */

+	public FillLayoutType getFillLayout() {

+		return fillLayout;

+	}

 

-    /**

-     * Sets the value of the fillLayout property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link FillLayoutType }

-     *     

-     */

-    public void setFillLayout(FillLayoutType value) {

-        this.fillLayout = value;

-    }

+	/**

+	 * Sets the value of the fillLayout property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link FillLayoutType }

+	 * 

+	 */

+	public void setFillLayout(FillLayoutType value) {

+		this.fillLayout = value;

+	}

 

-    /**

-     * Gets the value of the rowLayout property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link RowLayoutType }

-     *     

-     */

-    public RowLayoutType getRowLayout() {

-        return rowLayout;

-    }

+	/**

+	 * Gets the value of the rowLayout property.

+	 * 

+	 * @return

+	 *         possible object is {@link RowLayoutType }

+	 * 

+	 */

+	public RowLayoutType getRowLayout() {

+		return rowLayout;

+	}

 

-    /**

-     * Sets the value of the rowLayout property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link RowLayoutType }

-     *     

-     */

-    public void setRowLayout(RowLayoutType value) {

-        this.rowLayout = value;

-    }

+	/**

+	 * Sets the value of the rowLayout property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link RowLayoutType }

+	 * 

+	 */

+	public void setRowLayout(RowLayoutType value) {

+		this.rowLayout = value;

+	}

 

-    /**

-     * Gets the value of the gridLayout property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link GridLayoutType }

-     *     

-     */

-    public GridLayoutType getGridLayout() {

-        return gridLayout;

-    }

+	/**

+	 * Gets the value of the gridLayout property.

+	 * 

+	 * @return

+	 *         possible object is {@link GridLayoutType }

+	 * 

+	 */

+	public GridLayoutType getGridLayout() {

+		return gridLayout;

+	}

 

-    /**

-     * Sets the value of the gridLayout property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link GridLayoutType }

-     *     

-     */

-    public void setGridLayout(GridLayoutType value) {

-        this.gridLayout = value;

-    }

+	/**

+	 * Sets the value of the gridLayout property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link GridLayoutType }

+	 * 

+	 */

+	public void setGridLayout(GridLayoutType value) {

+		this.gridLayout = value;

+	}

 

-    /**

-     * Gets the value of the formLayout property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link FormLayoutType }

-     *     

-     */

-    public FormLayoutType getFormLayout() {

-        return formLayout;

-    }

+	/**

+	 * Gets the value of the formLayout property.

+	 * 

+	 * @return

+	 *         possible object is {@link FormLayoutType }

+	 * 

+	 */

+	public FormLayoutType getFormLayout() {

+		return formLayout;

+	}

 

-    /**

-     * Sets the value of the formLayout property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link FormLayoutType }

-     *     

-     */

-    public void setFormLayout(FormLayoutType value) {

-        this.formLayout = value;

-    }

+	/**

+	 * Sets the value of the formLayout property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link FormLayoutType }

+	 * 

+	 */

+	public void setFormLayout(FormLayoutType value) {

+		this.formLayout = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/LineType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/LineType.java
index f6b7f1c..20597a0 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/LineType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/LineType.java
@@ -2,23 +2,24 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for line-type complex type.

+ * <p>

+ * Java class for line-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="line-type">

@@ -35,40 +36,37 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "line-type", propOrder = {

-    "arg"

-})

+@XmlType(name = "line-type", propOrder = { "arg" })

 public class LineType {

 

-    protected List<ArgType> arg;

+	protected List<ArgType> arg;

 

-    /**

-     * Gets the value of the arg property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the arg property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getArg().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link ArgType }

-     * 

-     * 

-     */

-    public List<ArgType> getArg() {

-        if (arg == null) {

-            arg = new ArrayList<ArgType>();

-        }

-        return this.arg;

-    }

+	/**

+	 * Gets the value of the arg property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the arg

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getArg().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link ArgType }

+	 * 

+	 * 

+	 */

+	public List<ArgType> getArg() {

+		if (arg == null) {

+			arg = new ArrayList<ArgType>();

+		}

+		return this.arg;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ManagedFileType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ManagedFileType.java
index d36127c..d889592 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ManagedFileType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ManagedFileType.java
@@ -2,25 +2,26 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlSchemaType;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for managed-file-type complex type.

+ * <p>

+ * Java class for managed-file-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="managed-file-type">

@@ -48,291 +49,268 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "managed-file-type", propOrder = {

-    "line",

-    "contents",

-    "path"

-})

+@XmlType(name = "managed-file-type", propOrder = { "line", "contents", "path" })

 public class ManagedFileType {

 

-    protected List<LineType> line;

-    protected String contents;

-    protected String path;

-    @XmlAttribute(name = "name", required = true)

-    @XmlSchemaType(name = "anySimpleType")

-    protected String name;

-    @XmlAttribute(name = "uniqueIdPrefix")

-    protected Boolean uniqueIdPrefix;

-    @XmlAttribute(name = "resolveContents")

-    protected Boolean resolveContents;

-    @XmlAttribute(name = "deleteSourceAfterUse")

-    protected Boolean deleteSourceAfterUse;

-    @XmlAttribute(name = "deleteTargetAfterUse")

-    protected Boolean deleteTargetAfterUse;

-    @XmlAttribute(name = "mode")

-    protected String mode;

-    @XmlAttribute(name = "flags")

-    protected String flags;

+	protected List<LineType> line;

+	protected String contents;

+	protected String path;

+	@XmlAttribute(name = "name", required = true)

+	@XmlSchemaType(name = "anySimpleType")

+	protected String name;

+	@XmlAttribute(name = "uniqueIdPrefix")

+	protected Boolean uniqueIdPrefix;

+	@XmlAttribute(name = "resolveContents")

+	protected Boolean resolveContents;

+	@XmlAttribute(name = "deleteSourceAfterUse")

+	protected Boolean deleteSourceAfterUse;

+	@XmlAttribute(name = "deleteTargetAfterUse")

+	protected Boolean deleteTargetAfterUse;

+	@XmlAttribute(name = "mode")

+	protected String mode;

+	@XmlAttribute(name = "flags")

+	protected String flags;

 

-    /**

-     * Gets the value of the line property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the line property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getLine().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link LineType }

-     * 

-     * 

-     */

-    public List<LineType> getLine() {

-        if (line == null) {

-            line = new ArrayList<LineType>();

-        }

-        return this.line;

-    }

+	/**

+	 * Gets the value of the line property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the line

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getLine().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link LineType }

+	 * 

+	 * 

+	 */

+	public List<LineType> getLine() {

+		if (line == null) {

+			line = new ArrayList<LineType>();

+		}

+		return this.line;

+	}

 

-    /**

-     * Gets the value of the contents property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getContents() {

-        return contents;

-    }

+	/**

+	 * Gets the value of the contents property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getContents() {

+		return contents;

+	}

 

-    /**

-     * Sets the value of the contents property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setContents(String value) {

-        this.contents = value;

-    }

+	/**

+	 * Sets the value of the contents property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setContents(String value) {

+		this.contents = value;

+	}

 

-    /**

-     * Gets the value of the path property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getPath() {

-        return path;

-    }

+	/**

+	 * Gets the value of the path property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getPath() {

+		return path;

+	}

 

-    /**

-     * Sets the value of the path property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setPath(String value) {

-        this.path = value;

-    }

+	/**

+	 * Sets the value of the path property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setPath(String value) {

+		this.path = value;

+	}

 

-    /**

-     * Gets the value of the name property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getName() {

-        return name;

-    }

+	/**

+	 * Gets the value of the name property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getName() {

+		return name;

+	}

 

-    /**

-     * Sets the value of the name property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setName(String value) {

-        this.name = value;

-    }

+	/**

+	 * Sets the value of the name property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setName(String value) {

+		this.name = value;

+	}

 

-    /**

-     * Gets the value of the uniqueIdPrefix property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isUniqueIdPrefix() {

-        if (uniqueIdPrefix == null) {

-            return false;

-        } else {

-            return uniqueIdPrefix;

-        }

-    }

+	/**

+	 * Gets the value of the uniqueIdPrefix property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isUniqueIdPrefix() {

+		if (uniqueIdPrefix == null) {

+			return false;

+		} else {

+			return uniqueIdPrefix;

+		}

+	}

 

-    /**

-     * Sets the value of the uniqueIdPrefix property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setUniqueIdPrefix(Boolean value) {

-        this.uniqueIdPrefix = value;

-    }

+	/**

+	 * Sets the value of the uniqueIdPrefix property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setUniqueIdPrefix(Boolean value) {

+		this.uniqueIdPrefix = value;

+	}

 

-    /**

-     * Gets the value of the resolveContents property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isResolveContents() {

-        if (resolveContents == null) {

-            return true;

-        } else {

-            return resolveContents;

-        }

-    }

+	/**

+	 * Gets the value of the resolveContents property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isResolveContents() {

+		if (resolveContents == null) {

+			return true;

+		} else {

+			return resolveContents;

+		}

+	}

 

-    /**

-     * Sets the value of the resolveContents property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setResolveContents(Boolean value) {

-        this.resolveContents = value;

-    }

+	/**

+	 * Sets the value of the resolveContents property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setResolveContents(Boolean value) {

+		this.resolveContents = value;

+	}

 

-    /**

-     * Gets the value of the deleteSourceAfterUse property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isDeleteSourceAfterUse() {

-        if (deleteSourceAfterUse == null) {

-            return false;

-        } else {

-            return deleteSourceAfterUse;

-        }

-    }

+	/**

+	 * Gets the value of the deleteSourceAfterUse property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isDeleteSourceAfterUse() {

+		if (deleteSourceAfterUse == null) {

+			return false;

+		} else {

+			return deleteSourceAfterUse;

+		}

+	}

 

-    /**

-     * Sets the value of the deleteSourceAfterUse property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setDeleteSourceAfterUse(Boolean value) {

-        this.deleteSourceAfterUse = value;

-    }

+	/**

+	 * Sets the value of the deleteSourceAfterUse property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setDeleteSourceAfterUse(Boolean value) {

+		this.deleteSourceAfterUse = value;

+	}

 

-    /**

-     * Gets the value of the deleteTargetAfterUse property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isDeleteTargetAfterUse() {

-        if (deleteTargetAfterUse == null) {

-            return false;

-        } else {

-            return deleteTargetAfterUse;

-        }

-    }

+	/**

+	 * Gets the value of the deleteTargetAfterUse property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isDeleteTargetAfterUse() {

+		if (deleteTargetAfterUse == null) {

+			return false;

+		} else {

+			return deleteTargetAfterUse;

+		}

+	}

 

-    /**

-     * Sets the value of the deleteTargetAfterUse property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setDeleteTargetAfterUse(Boolean value) {

-        this.deleteTargetAfterUse = value;

-    }

+	/**

+	 * Sets the value of the deleteTargetAfterUse property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setDeleteTargetAfterUse(Boolean value) {

+		this.deleteTargetAfterUse = value;

+	}

 

-    /**

-     * Gets the value of the mode property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getMode() {

-        return mode;

-    }

+	/**

+	 * Gets the value of the mode property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getMode() {

+		return mode;

+	}

 

-    /**

-     * Sets the value of the mode property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setMode(String value) {

-        this.mode = value;

-    }

+	/**

+	 * Sets the value of the mode property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setMode(String value) {

+		this.mode = value;

+	}

 

-    /**

-     * Gets the value of the flags property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getFlags() {

-        return flags;

-    }

+	/**

+	 * Gets the value of the flags property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getFlags() {

+		return flags;

+	}

 

-    /**

-     * Sets the value of the flags property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setFlags(String value) {

-        this.flags = value;

-    }

+	/**

+	 * Sets the value of the flags property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setFlags(String value) {

+		this.flags = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ManagedFilesType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ManagedFilesType.java
index 1c190d3..870c6f0 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ManagedFilesType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ManagedFilesType.java
@@ -2,24 +2,25 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlElement;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for managed-files-type complex type.

+ * <p>

+ * Java class for managed-files-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="managed-files-type">

@@ -37,68 +38,62 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "managed-files-type", propOrder = {

-    "fileStagingLocation",

-    "file"

-})

+@XmlType(name = "managed-files-type", propOrder = { "fileStagingLocation", "file" })

 public class ManagedFilesType {

 

-    @XmlElement(name = "file-staging-location")

-    protected String fileStagingLocation;

-    @XmlElement(required = true)

-    protected List<ManagedFileType> file;

+	@XmlElement(name = "file-staging-location")

+	protected String fileStagingLocation;

+	@XmlElement(required = true)

+	protected List<ManagedFileType> file;

 

-    /**

-     * Gets the value of the fileStagingLocation property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getFileStagingLocation() {

-        return fileStagingLocation;

-    }

+	/**

+	 * Gets the value of the fileStagingLocation property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getFileStagingLocation() {

+		return fileStagingLocation;

+	}

 

-    /**

-     * Sets the value of the fileStagingLocation property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setFileStagingLocation(String value) {

-        this.fileStagingLocation = value;

-    }

+	/**

+	 * Sets the value of the fileStagingLocation property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setFileStagingLocation(String value) {

+		this.fileStagingLocation = value;

+	}

 

-    /**

-     * Gets the value of the file property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the file property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getFile().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link ManagedFileType }

-     * 

-     * 

-     */

-    public List<ManagedFileType> getFile() {

-        if (file == null) {

-            file = new ArrayList<ManagedFileType>();

-        }

-        return this.file;

-    }

+	/**

+	 * Gets the value of the file property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the file

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getFile().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link ManagedFileType }

+	 * 

+	 * 

+	 */

+	public List<ManagedFileType> getFile() {

+		if (file == null) {

+			file = new ArrayList<ManagedFileType>();

+		}

+		return this.file;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/MatchType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/MatchType.java
index d21abad..876c8c8 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/MatchType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/MatchType.java
@@ -2,14 +2,14 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlAttribute;

@@ -17,11 +17,12 @@
 import javax.xml.bind.annotation.XmlElements;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for match-type complex type.

+ * <p>

+ * Java class for match-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="match-type">

@@ -46,107 +47,92 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "match-type", propOrder = {

-    "expression",

-    "addOrAppendOrPut"

-})

+@XmlType(name = "match-type", propOrder = { "expression", "addOrAppendOrPut" })

 public class MatchType {

 

-    protected RegexType expression;

-    @XmlElements({

-        @XmlElement(name = "add", type = AddType.class),

-        @XmlElement(name = "append", type = AppendType.class),

-        @XmlElement(name = "put", type = PutType.class),

-        @XmlElement(name = "set", type = SetType.class),

-        @XmlElement(name = "throw", type = ThrowType.class)

-    })

-    protected List<Object> addOrAppendOrPut;

-    @XmlAttribute(name = "moveToTop")

-    protected Boolean moveToTop;

+	protected RegexType expression;

+	@XmlElements({ @XmlElement(name = "add", type = AddType.class), @XmlElement(name = "append", type = AppendType.class),

+			@XmlElement(name = "put", type = PutType.class), @XmlElement(name = "set", type = SetType.class),

+			@XmlElement(name = "throw", type = ThrowType.class) })

+	protected List<Object> addOrAppendOrPut;

+	@XmlAttribute(name = "moveToTop")

+	protected Boolean moveToTop;

 

-    /**

-     * Gets the value of the expression property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link RegexType }

-     *     

-     */

-    public RegexType getExpression() {

-        return expression;

-    }

+	/**

+	 * Gets the value of the expression property.

+	 * 

+	 * @return

+	 *         possible object is {@link RegexType }

+	 * 

+	 */

+	public RegexType getExpression() {

+		return expression;

+	}

 

-    /**

-     * Sets the value of the expression property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link RegexType }

-     *     

-     */

-    public void setExpression(RegexType value) {

-        this.expression = value;

-    }

+	/**

+	 * Sets the value of the expression property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link RegexType }

+	 * 

+	 */

+	public void setExpression(RegexType value) {

+		this.expression = value;

+	}

 

-    /**

-     * Gets the value of the addOrAppendOrPut property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the addOrAppendOrPut property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getAddOrAppendOrPut().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link AddType }

-     * {@link AppendType }

-     * {@link PutType }

-     * {@link SetType }

-     * {@link ThrowType }

-     * 

-     * 

-     */

-    public List<Object> getAddOrAppendOrPut() {

-        if (addOrAppendOrPut == null) {

-            addOrAppendOrPut = new ArrayList<Object>();

-        }

-        return this.addOrAppendOrPut;

-    }

+	/**

+	 * Gets the value of the addOrAppendOrPut property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the

+	 * addOrAppendOrPut property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getAddOrAppendOrPut().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link AddType } {@link AppendType } {@link PutType } {@link SetType }

+	 * {@link ThrowType }

+	 * 

+	 * 

+	 */

+	public List<Object> getAddOrAppendOrPut() {

+		if (addOrAppendOrPut == null) {

+			addOrAppendOrPut = new ArrayList<Object>();

+		}

+		return this.addOrAppendOrPut;

+	}

 

-    /**

-     * Gets the value of the moveToTop property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isMoveToTop() {

-        if (moveToTop == null) {

-            return false;

-        } else {

-            return moveToTop;

-        }

-    }

+	/**

+	 * Gets the value of the moveToTop property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isMoveToTop() {

+		if (moveToTop == null) {

+			return false;

+		} else {

+			return moveToTop;

+		}

+	}

 

-    /**

-     * Sets the value of the moveToTop property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setMoveToTop(Boolean value) {

-        this.moveToTop = value;

-    }

+	/**

+	 * Sets the value of the moveToTop property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setMoveToTop(Boolean value) {

+		this.moveToTop = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/MonitorDriverType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/MonitorDriverType.java
index 5259819..f06d415 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/MonitorDriverType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/MonitorDriverType.java
@@ -2,23 +2,24 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for monitor-driver-type complex type.

+ * <p>

+ * Java class for monitor-driver-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="monitor-driver-type">

@@ -41,154 +42,141 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "monitor-driver-type", propOrder = {

-    "url",

-    "name",

-    "path",

-    "args",

-    "cmd"

-})

+@XmlType(name = "monitor-driver-type", propOrder = { "url", "name", "path", "args", "cmd" })

 public class MonitorDriverType {

 

-    protected String url;

-    protected String name;

-    protected List<String> path;

-    protected List<ArgType> args;

-    protected List<SimpleCommandType> cmd;

+	protected String url;

+	protected String name;

+	protected List<String> path;

+	protected List<ArgType> args;

+	protected List<SimpleCommandType> cmd;

 

-    /**

-     * Gets the value of the url property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getUrl() {

-        return url;

-    }

+	/**

+	 * Gets the value of the url property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getUrl() {

+		return url;

+	}

 

-    /**

-     * Sets the value of the url property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setUrl(String value) {

-        this.url = value;

-    }

+	/**

+	 * Sets the value of the url property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setUrl(String value) {

+		this.url = value;

+	}

 

-    /**

-     * Gets the value of the name property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getName() {

-        return name;

-    }

+	/**

+	 * Gets the value of the name property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getName() {

+		return name;

+	}

 

-    /**

-     * Sets the value of the name property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setName(String value) {

-        this.name = value;

-    }

+	/**

+	 * Sets the value of the name property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setName(String value) {

+		this.name = value;

+	}

 

-    /**

-     * Gets the value of the path property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the path property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getPath().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link String }

-     * 

-     * 

-     */

-    public List<String> getPath() {

-        if (path == null) {

-            path = new ArrayList<String>();

-        }

-        return this.path;

-    }

+	/**

+	 * Gets the value of the path property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the path

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getPath().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link String }

+	 * 

+	 * 

+	 */

+	public List<String> getPath() {

+		if (path == null) {

+			path = new ArrayList<String>();

+		}

+		return this.path;

+	}

 

-    /**

-     * Gets the value of the args property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the args property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getArgs().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link ArgType }

-     * 

-     * 

-     */

-    public List<ArgType> getArgs() {

-        if (args == null) {

-            args = new ArrayList<ArgType>();

-        }

-        return this.args;

-    }

+	/**

+	 * Gets the value of the args property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the args

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getArgs().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link ArgType }

+	 * 

+	 * 

+	 */

+	public List<ArgType> getArgs() {

+		if (args == null) {

+			args = new ArrayList<ArgType>();

+		}

+		return this.args;

+	}

 

-    /**

-     * Gets the value of the cmd property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the cmd property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getCmd().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link SimpleCommandType }

-     * 

-     * 

-     */

-    public List<SimpleCommandType> getCmd() {

-        if (cmd == null) {

-            cmd = new ArrayList<SimpleCommandType>();

-        }

-        return this.cmd;

-    }

+	/**

+	 * Gets the value of the cmd property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the cmd

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getCmd().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link SimpleCommandType }

+	 * 

+	 * 

+	 */

+	public List<SimpleCommandType> getCmd() {

+		if (cmd == null) {

+			cmd = new ArrayList<SimpleCommandType>();

+		}

+		return this.cmd;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/MonitorType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/MonitorType.java
index bdf470e..42ac758 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/MonitorType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/MonitorType.java
@@ -2,24 +2,27 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlType;

 

+import org.eclipse.ptp.rm.jaxb.core.data.lml.LayoutRoot;

 

 /**

- * <p>Java class for monitor-type complex type.

+ * <p>

+ * Java class for monitor-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="monitor-type">

@@ -28,6 +31,7 @@
  *       &lt;sequence>

  *         &lt;element name="driver" type="{http://eclipse.org/ptp/rm}monitor-driver-type" maxOccurs="unbounded" minOccurs="0"/>

  *         &lt;element name="workflow" type="{http://eclipse.org/ptp/rm}workflow-type" maxOccurs="unbounded" minOccurs="0"/>

+ *         &lt;element name="layout" type="{http://eclipse.org/ptp/lml}layout_root" minOccurs="0"/>

  *       &lt;/sequence>

  *       &lt;attribute name="schedulerType" type="{http://www.w3.org/2001/XMLSchema}string" />

  *       &lt;attribute name="refreshFrequencyInSeconds" type="{http://www.w3.org/2001/XMLSchema}int" default="60" />

@@ -39,127 +43,141 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "monitor-type", propOrder = {

-    "driver",

-    "workflow"

-})

+@XmlType(name = "monitor-type", propOrder = { "driver", "workflow", "layout" })

 public class MonitorType {

 

-    protected List<MonitorDriverType> driver;

-    protected List<WorkflowType> workflow;

-    @XmlAttribute(name = "schedulerType")

-    protected String schedulerType;

-    @XmlAttribute(name = "refreshFrequencyInSeconds")

-    protected Integer refreshFrequencyInSeconds;

+	protected List<MonitorDriverType> driver;

+	protected List<WorkflowType> workflow;

+	protected LayoutRoot layout;

+	@XmlAttribute(name = "schedulerType")

+	protected String schedulerType;

+	@XmlAttribute(name = "refreshFrequencyInSeconds")

+	protected Integer refreshFrequencyInSeconds;

 

-    /**

-     * Gets the value of the driver property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the driver property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getDriver().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link MonitorDriverType }

-     * 

-     * 

-     */

-    public List<MonitorDriverType> getDriver() {

-        if (driver == null) {

-            driver = new ArrayList<MonitorDriverType>();

-        }

-        return this.driver;

-    }

+	/**

+	 * Gets the value of the driver property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the driver

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getDriver().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link MonitorDriverType }

+	 * 

+	 * 

+	 */

+	public List<MonitorDriverType> getDriver() {

+		if (driver == null) {

+			driver = new ArrayList<MonitorDriverType>();

+		}

+		return this.driver;

+	}

 

-    /**

-     * Gets the value of the workflow property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the workflow property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getWorkflow().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link WorkflowType }

-     * 

-     * 

-     */

-    public List<WorkflowType> getWorkflow() {

-        if (workflow == null) {

-            workflow = new ArrayList<WorkflowType>();

-        }

-        return this.workflow;

-    }

+	/**

+	 * Gets the value of the workflow property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the workflow

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getWorkflow().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link WorkflowType }

+	 * 

+	 * 

+	 */

+	public List<WorkflowType> getWorkflow() {

+		if (workflow == null) {

+			workflow = new ArrayList<WorkflowType>();

+		}

+		return this.workflow;

+	}

 

-    /**

-     * Gets the value of the schedulerType property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getSchedulerType() {

-        return schedulerType;

-    }

+	/**

+	 * Gets the value of the layout property.

+	 * 

+	 * @return

+	 *         possible object is {@link LayoutRoot }

+	 * 

+	 */

+	public LayoutRoot getLayout() {

+		return layout;

+	}

 

-    /**

-     * Sets the value of the schedulerType property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setSchedulerType(String value) {

-        this.schedulerType = value;

-    }

+	/**

+	 * Sets the value of the layout property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link LayoutRoot }

+	 * 

+	 */

+	public void setLayout(LayoutRoot value) {

+		this.layout = value;

+	}

 

-    /**

-     * Gets the value of the refreshFrequencyInSeconds property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public int getRefreshFrequencyInSeconds() {

-        if (refreshFrequencyInSeconds == null) {

-            return  60;

-        } else {

-            return refreshFrequencyInSeconds;

-        }

-    }

+	/**

+	 * Gets the value of the schedulerType property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getSchedulerType() {

+		return schedulerType;

+	}

 

-    /**

-     * Sets the value of the refreshFrequencyInSeconds property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setRefreshFrequencyInSeconds(Integer value) {

-        this.refreshFrequencyInSeconds = value;

-    }

+	/**

+	 * Sets the value of the schedulerType property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setSchedulerType(String value) {

+		this.schedulerType = value;

+	}

+

+	/**

+	 * Gets the value of the refreshFrequencyInSeconds property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public int getRefreshFrequencyInSeconds() {

+		if (refreshFrequencyInSeconds == null) {

+			return 60;

+		} else {

+			return refreshFrequencyInSeconds;

+		}

+	}

+

+	/**

+	 * Sets the value of the refreshFrequencyInSeconds property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setRefreshFrequencyInSeconds(Integer value) {

+		this.refreshFrequencyInSeconds = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ObjectFactory.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ObjectFactory.java
index b7dd090..8dc9cf1 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ObjectFactory.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ObjectFactory.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.JAXBElement;

@@ -13,568 +12,564 @@
 import javax.xml.bind.annotation.XmlRegistry;

 import javax.xml.namespace.QName;

 

-

 /**

- * This object contains factory methods for each 

- * Java content interface and Java element interface 

- * generated in the org.eclipse.ptp.rm.jaxb.core.data package. 

- * <p>An ObjectFactory allows you to programatically 

- * construct new instances of the Java representation 

- * for XML content. The Java representation of XML 

- * content can consist of schema derived interfaces 

- * and classes representing the binding of schema 

- * type definitions, element declarations and model 

- * groups.  Factory methods for each of these are 

- * provided in this class.

+ * This object contains factory methods for each

+ * Java content interface and Java element interface

+ * generated in the org.eclipse.ptp.rm.jaxb.core.data package.

+ * <p>

+ * An ObjectFactory allows you to programatically construct new instances of the Java representation for XML content. The Java

+ * representation of XML content can consist of schema derived interfaces and classes representing the binding of schema type

+ * definitions, element declarations and model groups. Factory methods for each of these are provided in this class.

  * 

  */

 @XmlRegistry

 public class ObjectFactory {

 

-    private final static QName _ResourceManagerBuilder_QNAME = new QName("http://eclipse.org/ptp/rm", "resource-manager-builder");

+	private final static QName _ResourceManagerBuilder_QNAME = new QName("http://eclipse.org/ptp/rm", "resource-manager-builder");

 

-    /**

-     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.eclipse.ptp.rm.jaxb.core.data

-     * 

-     */

-    public ObjectFactory() {

-    }

+	/**

+	 * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package:

+	 * org.eclipse.ptp.rm.jaxb.core.data

+	 * 

+	 */

+	public ObjectFactory() {

+	}

 

-    /**

-     * Create an instance of {@link TestType }

-     * 

-     */

-    public TestType createTestType() {

-        return new TestType();

-    }

+	/**

+	 * Create an instance of {@link TestType }

+	 * 

+	 */

+	public TestType createTestType() {

+		return new TestType();

+	}

 

-    /**

-     * Create an instance of {@link LaunchTabType }

-     * 

-     */

-    public LaunchTabType createLaunchTabType() {

-        return new LaunchTabType();

-    }

+	/**

+	 * Create an instance of {@link LaunchTabType }

+	 * 

+	 */

+	public LaunchTabType createLaunchTabType() {

+		return new LaunchTabType();

+	}

 

-    /**

-     * Create an instance of {@link TargetType }

-     * 

-     */

-    public TargetType createTargetType() {

-        return new TargetType();

-    }

+	/**

+	 * Create an instance of {@link TargetType }

+	 * 

+	 */

+	public TargetType createTargetType() {

+		return new TargetType();

+	}

 

-    /**

-     * Create an instance of {@link ControlStateRuleType }

-     * 

-     */

-    public ControlStateRuleType createControlStateRuleType() {

-        return new ControlStateRuleType();

-    }

+	/**

+	 * Create an instance of {@link ControlStateRuleType }

+	 * 

+	 */

+	public ControlStateRuleType createControlStateRuleType() {

+		return new ControlStateRuleType();

+	}

 

-    /**

-     * Create an instance of {@link WidgetType }

-     * 

-     */

-    public WidgetType createWidgetType() {

-        return new WidgetType();

-    }

+	/**

+	 * Create an instance of {@link WidgetType }

+	 * 

+	 */

+	public WidgetType createWidgetType() {

+		return new WidgetType();

+	}

 

-    /**

-     * Create an instance of {@link ResourceManagerData }

-     * 

-     */

-    public ResourceManagerData createResourceManagerData() {

-        return new ResourceManagerData();

-    }

+	/**

+	 * Create an instance of {@link ResourceManagerData }

+	 * 

+	 */

+	public ResourceManagerData createResourceManagerData() {

+		return new ResourceManagerData();

+	}

 

-    /**

-     * Create an instance of {@link LayoutDataType }

-     * 

-     */

-    public LayoutDataType createLayoutDataType() {

-        return new LayoutDataType();

-    }

+	/**

+	 * Create an instance of {@link LayoutDataType }

+	 * 

+	 */

+	public LayoutDataType createLayoutDataType() {

+		return new LayoutDataType();

+	}

 

-    /**

-     * Create an instance of {@link FileMatchType }

-     * 

-     */

-    public FileMatchType createFileMatchType() {

-        return new FileMatchType();

-    }

+	/**

+	 * Create an instance of {@link FileMatchType }

+	 * 

+	 */

+	public FileMatchType createFileMatchType() {

+		return new FileMatchType();

+	}

 

-    /**

-     * Create an instance of {@link FormDataType }

-     * 

-     */

-    public FormDataType createFormDataType() {

-        return new FormDataType();

-    }

+	/**

+	 * Create an instance of {@link FormDataType }

+	 * 

+	 */

+	public FormDataType createFormDataType() {

+		return new FormDataType();

+	}

 

-    /**

-     * Create an instance of {@link SetType }

-     * 

-     */

-    public SetType createSetType() {

-        return new SetType();

-    }

+	/**

+	 * Create an instance of {@link SetType }

+	 * 

+	 */

+	public SetType createSetType() {

+		return new SetType();

+	}

 

-    /**

-     * Create an instance of {@link AppendType }

-     * 

-     */

-    public AppendType createAppendType() {

-        return new AppendType();

-    }

+	/**

+	 * Create an instance of {@link AppendType }

+	 * 

+	 */

+	public AppendType createAppendType() {

+		return new AppendType();

+	}

 

-    /**

-     * Create an instance of {@link VardefsType }

-     * 

-     */

-    public VardefsType createVardefsType() {

-        return new VardefsType();

-    }

+	/**

+	 * Create an instance of {@link VardefsType }

+	 * 

+	 */

+	public VardefsType createVardefsType() {

+		return new VardefsType();

+	}

 

-    /**

-     * Create an instance of {@link FormLayoutType }

-     * 

-     */

-    public FormLayoutType createFormLayoutType() {

-        return new FormLayoutType();

-    }

+	/**

+	 * Create an instance of {@link FormLayoutType }

+	 * 

+	 */

+	public FormLayoutType createFormLayoutType() {

+		return new FormLayoutType();

+	}

 

-    /**

-     * Create an instance of {@link AttributeType }

-     * 

-     */

-    public AttributeType createAttributeType() {

-        return new AttributeType();

-    }

+	/**

+	 * Create an instance of {@link AttributeType }

+	 * 

+	 */

+	public AttributeType createAttributeType() {

+		return new AttributeType();

+	}

 

-    /**

-     * Create an instance of {@link AttributeViewerType }

-     * 

-     */

-    public AttributeViewerType createAttributeViewerType() {

-        return new AttributeViewerType();

-    }

+	/**

+	 * Create an instance of {@link AttributeViewerType }

+	 * 

+	 */

+	public AttributeViewerType createAttributeViewerType() {

+		return new AttributeViewerType();

+	}

 

-    /**

-     * Create an instance of {@link ViewerItemsType }

-     * 

-     */

-    public ViewerItemsType createViewerItemsType() {

-        return new ViewerItemsType();

-    }

+	/**

+	 * Create an instance of {@link ViewerItemsType }

+	 * 

+	 */

+	public ViewerItemsType createViewerItemsType() {

+		return new ViewerItemsType();

+	}

 

-    /**

-     * Create an instance of {@link ArgType }

-     * 

-     */

-    public ArgType createArgType() {

-        return new ArgType();

-    }

+	/**

+	 * Create an instance of {@link ArgType }

+	 * 

+	 */

+	public ArgType createArgType() {

+		return new ArgType();

+	}

 

-    /**

-     * Create an instance of {@link TabControllerType }

-     * 

-     */

-    public TabControllerType createTabControllerType() {

-        return new TabControllerType();

-    }

+	/**

+	 * Create an instance of {@link TabControllerType }

+	 * 

+	 */

+	public TabControllerType createTabControllerType() {

+		return new TabControllerType();

+	}

 

-    /**

-     * Create an instance of {@link MonitorType }

-     * 

-     */

-    public MonitorType createMonitorType() {

-        return new MonitorType();

-    }

+	/**

+	 * Create an instance of {@link MonitorType }

+	 * 

+	 */

+	public MonitorType createMonitorType() {

+		return new MonitorType();

+	}

 

-    /**

-     * Create an instance of {@link PutType }

-     * 

-     */

-    public PutType createPutType() {

-        return new PutType();

-    }

+	/**

+	 * Create an instance of {@link PutType }

+	 * 

+	 */

+	public PutType createPutType() {

+		return new PutType();

+	}

 

-    /**

-     * Create an instance of {@link VarType }

-     * 

-     */

-    public VarType createVarType() {

-        return new VarType();

-    }

+	/**

+	 * Create an instance of {@link VarType }

+	 * 

+	 */

+	public VarType createVarType() {

+		return new VarType();

+	}

 

-    /**

-     * Create an instance of {@link WorkflowType }

-     * 

-     */

-    public WorkflowType createWorkflowType() {

-        return new WorkflowType();

-    }

+	/**

+	 * Create an instance of {@link WorkflowType }

+	 * 

+	 */

+	public WorkflowType createWorkflowType() {

+		return new WorkflowType();

+	}

 

-    /**

-     * Create an instance of {@link RegexType }

-     * 

-     */

-    public RegexType createRegexType() {

-        return new RegexType();

-    }

+	/**

+	 * Create an instance of {@link RegexType }

+	 * 

+	 */

+	public RegexType createRegexType() {

+		return new RegexType();

+	}

 

-    /**

-     * Create an instance of {@link TokenizerType }

-     * 

-     */

-    public TokenizerType createTokenizerType() {

-        return new TokenizerType();

-    }

+	/**

+	 * Create an instance of {@link TokenizerType }

+	 * 

+	 */

+	public TokenizerType createTokenizerType() {

+		return new TokenizerType();

+	}

 

-    /**

-     * Create an instance of {@link LineType }

-     * 

-     */

-    public LineType createLineType() {

-        return new LineType();

-    }

+	/**

+	 * Create an instance of {@link LineType }

+	 * 

+	 */

+	public LineType createLineType() {

+		return new LineType();

+	}

 

-    /**

-     * Create an instance of {@link CompositeType }

-     * 

-     */

-    public CompositeType createCompositeType() {

-        return new CompositeType();

-    }

+	/**

+	 * Create an instance of {@link CompositeType }

+	 * 

+	 */

+	public CompositeType createCompositeType() {

+		return new CompositeType();

+	}

 

-    /**

-     * Create an instance of {@link TabItemType }

-     * 

-     */

-    public TabItemType createTabItemType() {

-        return new TabItemType();

-    }

+	/**

+	 * Create an instance of {@link TabItemType }

+	 * 

+	 */

+	public TabItemType createTabItemType() {

+		return new TabItemType();

+	}

 

-    /**

-     * Create an instance of {@link FormAttachmentType }

-     * 

-     */

-    public FormAttachmentType createFormAttachmentType() {

-        return new FormAttachmentType();

-    }

+	/**

+	 * Create an instance of {@link FormAttachmentType }

+	 * 

+	 */

+	public FormAttachmentType createFormAttachmentType() {

+		return new FormAttachmentType();

+	}

 

-    /**

-     * Create an instance of {@link MatchType }

-     * 

-     */

-    public MatchType createMatchType() {

-        return new MatchType();

-    }

+	/**

+	 * Create an instance of {@link MatchType }

+	 * 

+	 */

+	public MatchType createMatchType() {

+		return new MatchType();

+	}

 

-    /**

-     * Create an instance of {@link ControlType }

-     * 

-     */

-    public ControlType createControlType() {

-        return new ControlType();

-    }

+	/**

+	 * Create an instance of {@link ControlType }

+	 * 

+	 */

+	public ControlType createControlType() {

+		return new ControlType();

+	}

 

-    /**

-     * Create an instance of {@link CommandType }

-     * 

-     */

-    public CommandType createCommandType() {

-        return new CommandType();

-    }

+	/**

+	 * Create an instance of {@link CommandType }

+	 * 

+	 */

+	public CommandType createCommandType() {

+		return new CommandType();

+	}

 

-    /**

-     * Create an instance of {@link BrowseType }

-     * 

-     */

-    public BrowseType createBrowseType() {

-        return new BrowseType();

-    }

+	/**

+	 * Create an instance of {@link BrowseType }

+	 * 

+	 */

+	public BrowseType createBrowseType() {

+		return new BrowseType();

+	}

 

-    /**

-     * Create an instance of {@link ThrowType }

-     * 

-     */

-    public ThrowType createThrowType() {

-        return new ThrowType();

-    }

+	/**

+	 * Create an instance of {@link ThrowType }

+	 * 

+	 */

+	public ThrowType createThrowType() {

+		return new ThrowType();

+	}

 

-    /**

-     * Create an instance of {@link EnvironmentType }

-     * 

-     */

-    public EnvironmentType createEnvironmentType() {

-        return new EnvironmentType();

-    }

+	/**

+	 * Create an instance of {@link EnvironmentType }

+	 * 

+	 */

+	public EnvironmentType createEnvironmentType() {

+		return new EnvironmentType();

+	}

 

-    /**

-     * Create an instance of {@link RowDataType }

-     * 

-     */

-    public RowDataType createRowDataType() {

-        return new RowDataType();

-    }

+	/**

+	 * Create an instance of {@link RowDataType }

+	 * 

+	 */

+	public RowDataType createRowDataType() {

+		return new RowDataType();

+	}

 

-    /**

-     * Create an instance of {@link RangeType }

-     * 

-     */

-    public RangeType createRangeType() {

-        return new RangeType();

-    }

+	/**

+	 * Create an instance of {@link RangeType }

+	 * 

+	 */

+	public RangeType createRangeType() {

+		return new RangeType();

+	}

 

-    /**

-     * Create an instance of {@link TemplateType }

-     * 

-     */

-    public TemplateType createTemplateType() {

-        return new TemplateType();

-    }

+	/**

+	 * Create an instance of {@link TemplateType }

+	 * 

+	 */

+	public TemplateType createTemplateType() {

+		return new TemplateType();

+	}

 

-    /**

-     * Create an instance of {@link ManagedFilesType }

-     * 

-     */

-    public ManagedFilesType createManagedFilesType() {

-        return new ManagedFilesType();

-    }

+	/**

+	 * Create an instance of {@link ManagedFilesType }

+	 * 

+	 */

+	public ManagedFilesType createManagedFilesType() {

+		return new ManagedFilesType();

+	}

 

-    /**

-     * Create an instance of {@link EntryType }

-     * 

-     */

-    public EntryType createEntryType() {

-        return new EntryType();

-    }

+	/**

+	 * Create an instance of {@link EntryType }

+	 * 

+	 */

+	public EntryType createEntryType() {

+		return new EntryType();

+	}

 

-    /**

-     * Create an instance of {@link SiteType }

-     * 

-     */

-    public SiteType createSiteType() {

-        return new SiteType();

-    }

+	/**

+	 * Create an instance of {@link SiteType }

+	 * 

+	 */

+	public SiteType createSiteType() {

+		return new SiteType();

+	}

 

-    /**

-     * Create an instance of {@link GridDataType }

-     * 

-     */

-    public GridDataType createGridDataType() {

-        return new GridDataType();

-    }

+	/**

+	 * Create an instance of {@link GridDataType }

+	 * 

+	 */

+	public GridDataType createGridDataType() {

+		return new GridDataType();

+	}

 

-    /**

-     * Create an instance of {@link ColumnDataType }

-     * 

-     */

-    public ColumnDataType createColumnDataType() {

-        return new ColumnDataType();

-    }

+	/**

+	 * Create an instance of {@link ColumnDataType }

+	 * 

+	 */

+	public ColumnDataType createColumnDataType() {

+		return new ColumnDataType();

+	}

 

-    /**

-     * Create an instance of {@link ManagedFileType }

-     * 

-     */

-    public ManagedFileType createManagedFileType() {

-        return new ManagedFileType();

-    }

+	/**

+	 * Create an instance of {@link ManagedFileType }

+	 * 

+	 */

+	public ManagedFileType createManagedFileType() {

+		return new ManagedFileType();

+	}

 

-    /**

-     * Create an instance of {@link FontType }

-     * 

-     */

-    public FontType createFontType() {

-        return new FontType();

-    }

+	/**

+	 * Create an instance of {@link FontType }

+	 * 

+	 */

+	public FontType createFontType() {

+		return new FontType();

+	}

 

-    /**

-     * Create an instance of {@link ButtonGroupType }

-     * 

-     */

-    public ButtonGroupType createButtonGroupType() {

-        return new ButtonGroupType();

-    }

+	/**

+	 * Create an instance of {@link ButtonGroupType }

+	 * 

+	 */

+	public ButtonGroupType createButtonGroupType() {

+		return new ButtonGroupType();

+	}

 

-    /**

-     * Create an instance of {@link GridLayoutType }

-     * 

-     */

-    public GridLayoutType createGridLayoutType() {

-        return new GridLayoutType();

-    }

+	/**

+	 * Create an instance of {@link GridLayoutType }

+	 * 

+	 */

+	public GridLayoutType createGridLayoutType() {

+		return new GridLayoutType();

+	}

 

-    /**

-     * Create an instance of {@link FillLayoutType }

-     * 

-     */

-    public FillLayoutType createFillLayoutType() {

-        return new FillLayoutType();

-    }

+	/**

+	 * Create an instance of {@link FillLayoutType }

+	 * 

+	 */

+	public FillLayoutType createFillLayoutType() {

+		return new FillLayoutType();

+	}

 

-    /**

-     * Create an instance of {@link ControlStateType }

-     * 

-     */

-    public ControlStateType createControlStateType() {

-        return new ControlStateType();

-    }

+	/**

+	 * Create an instance of {@link ControlStateType }

+	 * 

+	 */

+	public ControlStateType createControlStateType() {

+		return new ControlStateType();

+	}

 

-    /**

-     * Create an instance of {@link ScriptType }

-     * 

-     */

-    public ScriptType createScriptType() {

-        return new ScriptType();

-    }

+	/**

+	 * Create an instance of {@link ScriptType }

+	 * 

+	 */

+	public ScriptType createScriptType() {

+		return new ScriptType();

+	}

 

-    /**

-     * Create an instance of {@link TabFolderType }

-     * 

-     */

-    public TabFolderType createTabFolderType() {

-        return new TabFolderType();

-    }

+	/**

+	 * Create an instance of {@link TabFolderType }

+	 * 

+	 */

+	public TabFolderType createTabFolderType() {

+		return new TabFolderType();

+	}

 

-    /**

-     * Create an instance of {@link AddType }

-     * 

-     */

-    public AddType createAddType() {

-        return new AddType();

-    }

+	/**

+	 * Create an instance of {@link AddType }

+	 * 

+	 */

+	public AddType createAddType() {

+		return new AddType();

+	}

 

-    /**

-     * Create an instance of {@link SimpleCommandType }

-     * 

-     */

-    public SimpleCommandType createSimpleCommandType() {

-        return new SimpleCommandType();

-    }

+	/**

+	 * Create an instance of {@link SimpleCommandType }

+	 * 

+	 */

+	public SimpleCommandType createSimpleCommandType() {

+		return new SimpleCommandType();

+	}

 

-    /**

-     * Create an instance of {@link MonitorDriverType }

-     * 

-     */

-    public MonitorDriverType createMonitorDriverType() {

-        return new MonitorDriverType();

-    }

+	/**

+	 * Create an instance of {@link MonitorDriverType }

+	 * 

+	 */

+	public MonitorDriverType createMonitorDriverType() {

+		return new MonitorDriverType();

+	}

 

-    /**

-     * Create an instance of {@link ButtonActionType }

-     * 

-     */

-    public ButtonActionType createButtonActionType() {

-        return new ButtonActionType();

-    }

+	/**

+	 * Create an instance of {@link ButtonActionType }

+	 * 

+	 */

+	public ButtonActionType createButtonActionType() {

+		return new ButtonActionType();

+	}

 

-    /**

-     * Create an instance of {@link RowLayoutType }

-     * 

-     */

-    public RowLayoutType createRowLayoutType() {

-        return new RowLayoutType();

-    }

+	/**

+	 * Create an instance of {@link RowLayoutType }

+	 * 

+	 */

+	public RowLayoutType createRowLayoutType() {

+		return new RowLayoutType();

+	}

 

-    /**

-     * Create an instance of {@link ValidatorType }

-     * 

-     */

-    public ValidatorType createValidatorType() {

-        return new ValidatorType();

-    }

+	/**

+	 * Create an instance of {@link ValidatorType }

+	 * 

+	 */

+	public ValidatorType createValidatorType() {

+		return new ValidatorType();

+	}

 

-    /**

-     * Create an instance of {@link StepType }

-     * 

-     */

-    public StepType createStepType() {

-        return new StepType();

-    }

+	/**

+	 * Create an instance of {@link StepType }

+	 * 

+	 */

+	public StepType createStepType() {

+		return new StepType();

+	}

 

-    /**

-     * Create an instance of {@link LayoutType }

-     * 

-     */

-    public LayoutType createLayoutType() {

-        return new LayoutType();

-    }

+	/**

+	 * Create an instance of {@link LayoutType }

+	 * 

+	 */

+	public LayoutType createLayoutType() {

+		return new LayoutType();

+	}

 

-    /**

-     * Create an instance of {@link PushButtonType }

-     * 

-     */

-    public PushButtonType createPushButtonType() {

-        return new PushButtonType();

-    }

+	/**

+	 * Create an instance of {@link PushButtonType }

+	 * 

+	 */

+	public PushButtonType createPushButtonType() {

+		return new PushButtonType();

+	}

 

-    /**

-     * Create an instance of {@link TestType.Else }

-     * 

-     */

-    public TestType.Else createTestTypeElse() {

-        return new TestType.Else();

-    }

+	/**

+	 * Create an instance of {@link TestType.Else }

+	 * 

+	 */

+	public TestType.Else createTestTypeElse() {

+		return new TestType.Else();

+	}

 

-    /**

-     * Create an instance of {@link LaunchTabType.Import }

-     * 

-     */

-    public LaunchTabType.Import createLaunchTabTypeImport() {

-        return new LaunchTabType.Import();

-    }

+	/**

+	 * Create an instance of {@link LaunchTabType.Import }

+	 * 

+	 */

+	public LaunchTabType.Import createLaunchTabTypeImport() {

+		return new LaunchTabType.Import();

+	}

 

-    /**

-     * Create an instance of {@link TargetType.Else }

-     * 

-     */

-    public TargetType.Else createTargetTypeElse() {

-        return new TargetType.Else();

-    }

+	/**

+	 * Create an instance of {@link TargetType.Else }

+	 * 

+	 */

+	public TargetType.Else createTargetTypeElse() {

+		return new TargetType.Else();

+	}

 

-    /**

-     * Create an instance of {@link ControlStateRuleType.Not }

-     * 

-     */

-    public ControlStateRuleType.Not createControlStateRuleTypeNot() {

-        return new ControlStateRuleType.Not();

-    }

+	/**

+	 * Create an instance of {@link ControlStateRuleType.Not }

+	 * 

+	 */

+	public ControlStateRuleType.Not createControlStateRuleTypeNot() {

+		return new ControlStateRuleType.Not();

+	}

 

-    /**

-     * Create an instance of {@link ControlStateRuleType.And }

-     * 

-     */

-    public ControlStateRuleType.And createControlStateRuleTypeAnd() {

-        return new ControlStateRuleType.And();

-    }

+	/**

+	 * Create an instance of {@link ControlStateRuleType.And }

+	 * 

+	 */

+	public ControlStateRuleType.And createControlStateRuleTypeAnd() {

+		return new ControlStateRuleType.And();

+	}

 

-    /**

-     * Create an instance of {@link ControlStateRuleType.Or }

-     * 

-     */

-    public ControlStateRuleType.Or createControlStateRuleTypeOr() {

-        return new ControlStateRuleType.Or();

-    }

+	/**

+	 * Create an instance of {@link ControlStateRuleType.Or }

+	 * 

+	 */

+	public ControlStateRuleType.Or createControlStateRuleTypeOr() {

+		return new ControlStateRuleType.Or();

+	}

 

-    /**

-     * Create an instance of {@link WidgetType.DynamicText }

-     * 

-     */

-    public WidgetType.DynamicText createWidgetTypeDynamicText() {

-        return new WidgetType.DynamicText();

-    }

+	/**

+	 * Create an instance of {@link WidgetType.DynamicText }

+	 * 

+	 */

+	public WidgetType.DynamicText createWidgetTypeDynamicText() {

+		return new WidgetType.DynamicText();

+	}

 

-    /**

-     * Create an instance of {@link JAXBElement }{@code <}{@link ResourceManagerData }{@code >}}

-     * 

-     */

-    @XmlElementDecl(namespace = "http://eclipse.org/ptp/rm", name = "resource-manager-builder")

-    public JAXBElement<ResourceManagerData> createResourceManagerBuilder(ResourceManagerData value) {

-        return new JAXBElement<ResourceManagerData>(_ResourceManagerBuilder_QNAME, ResourceManagerData.class, null, value);

-    }

+	/**

+	 * Create an instance of {@link JAXBElement }{@code <}{@link ResourceManagerData }{@code >}

+	 * 

+	 */

+	@XmlElementDecl(namespace = "http://eclipse.org/ptp/rm", name = "resource-manager-builder")

+	public JAXBElement<ResourceManagerData> createResourceManagerBuilder(ResourceManagerData value) {

+		return new JAXBElement<ResourceManagerData>(_ResourceManagerBuilder_QNAME, ResourceManagerData.class, null, value);

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/PushButtonType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/PushButtonType.java
index f057b7d..d4e96f9 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/PushButtonType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/PushButtonType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -14,11 +13,12 @@
 import javax.xml.bind.annotation.XmlElement;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for push-button-type complex type.

+ * <p>

+ * Java class for push-button-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="push-button-type">

@@ -42,220 +42,198 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "push-button-type", propOrder = {

-    "layoutData",

-    "font",

-    "tooltip",

-    "buttonAction",

-    "controlState"

-})

+@XmlType(name = "push-button-type", propOrder = { "layoutData", "font", "tooltip", "buttonAction", "controlState" })

 public class PushButtonType {

 

-    @XmlElement(name = "layout-data")

-    protected LayoutDataType layoutData;

-    protected FontType font;

-    protected String tooltip;

-    @XmlElement(name = "button-action")

-    protected ButtonActionType buttonAction;

-    @XmlElement(name = "control-state")

-    protected ControlStateType controlState;

-    @XmlAttribute(name = "title")

-    protected String title;

-    @XmlAttribute(name = "foreground")

-    protected String foreground;

-    @XmlAttribute(name = "background")

-    protected String background;

+	@XmlElement(name = "layout-data")

+	protected LayoutDataType layoutData;

+	protected FontType font;

+	protected String tooltip;

+	@XmlElement(name = "button-action")

+	protected ButtonActionType buttonAction;

+	@XmlElement(name = "control-state")

+	protected ControlStateType controlState;

+	@XmlAttribute(name = "title")

+	protected String title;

+	@XmlAttribute(name = "foreground")

+	protected String foreground;

+	@XmlAttribute(name = "background")

+	protected String background;

 

-    /**

-     * Gets the value of the layoutData property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link LayoutDataType }

-     *     

-     */

-    public LayoutDataType getLayoutData() {

-        return layoutData;

-    }

+	/**

+	 * Gets the value of the layoutData property.

+	 * 

+	 * @return

+	 *         possible object is {@link LayoutDataType }

+	 * 

+	 */

+	public LayoutDataType getLayoutData() {

+		return layoutData;

+	}

 

-    /**

-     * Sets the value of the layoutData property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link LayoutDataType }

-     *     

-     */

-    public void setLayoutData(LayoutDataType value) {

-        this.layoutData = value;

-    }

+	/**

+	 * Sets the value of the layoutData property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link LayoutDataType }

+	 * 

+	 */

+	public void setLayoutData(LayoutDataType value) {

+		this.layoutData = value;

+	}

 

-    /**

-     * Gets the value of the font property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link FontType }

-     *     

-     */

-    public FontType getFont() {

-        return font;

-    }

+	/**

+	 * Gets the value of the font property.

+	 * 

+	 * @return

+	 *         possible object is {@link FontType }

+	 * 

+	 */

+	public FontType getFont() {

+		return font;

+	}

 

-    /**

-     * Sets the value of the font property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link FontType }

-     *     

-     */

-    public void setFont(FontType value) {

-        this.font = value;

-    }

+	/**

+	 * Sets the value of the font property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link FontType }

+	 * 

+	 */

+	public void setFont(FontType value) {

+		this.font = value;

+	}

 

-    /**

-     * Gets the value of the tooltip property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getTooltip() {

-        return tooltip;

-    }

+	/**

+	 * Gets the value of the tooltip property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getTooltip() {

+		return tooltip;

+	}

 

-    /**

-     * Sets the value of the tooltip property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setTooltip(String value) {

-        this.tooltip = value;

-    }

+	/**

+	 * Sets the value of the tooltip property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setTooltip(String value) {

+		this.tooltip = value;

+	}

 

-    /**

-     * Gets the value of the buttonAction property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link ButtonActionType }

-     *     

-     */

-    public ButtonActionType getButtonAction() {

-        return buttonAction;

-    }

+	/**

+	 * Gets the value of the buttonAction property.

+	 * 

+	 * @return

+	 *         possible object is {@link ButtonActionType }

+	 * 

+	 */

+	public ButtonActionType getButtonAction() {

+		return buttonAction;

+	}

 

-    /**

-     * Sets the value of the buttonAction property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link ButtonActionType }

-     *     

-     */

-    public void setButtonAction(ButtonActionType value) {

-        this.buttonAction = value;

-    }

+	/**

+	 * Sets the value of the buttonAction property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link ButtonActionType }

+	 * 

+	 */

+	public void setButtonAction(ButtonActionType value) {

+		this.buttonAction = value;

+	}

 

-    /**

-     * Gets the value of the controlState property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link ControlStateType }

-     *     

-     */

-    public ControlStateType getControlState() {

-        return controlState;

-    }

+	/**

+	 * Gets the value of the controlState property.

+	 * 

+	 * @return

+	 *         possible object is {@link ControlStateType }

+	 * 

+	 */

+	public ControlStateType getControlState() {

+		return controlState;

+	}

 

-    /**

-     * Sets the value of the controlState property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link ControlStateType }

-     *     

-     */

-    public void setControlState(ControlStateType value) {

-        this.controlState = value;

-    }

+	/**

+	 * Sets the value of the controlState property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link ControlStateType }

+	 * 

+	 */

+	public void setControlState(ControlStateType value) {

+		this.controlState = value;

+	}

 

-    /**

-     * Gets the value of the title property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getTitle() {

-        return title;

-    }

+	/**

+	 * Gets the value of the title property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getTitle() {

+		return title;

+	}

 

-    /**

-     * Sets the value of the title property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setTitle(String value) {

-        this.title = value;

-    }

+	/**

+	 * Sets the value of the title property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setTitle(String value) {

+		this.title = value;

+	}

 

-    /**

-     * Gets the value of the foreground property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getForeground() {

-        return foreground;

-    }

+	/**

+	 * Gets the value of the foreground property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getForeground() {

+		return foreground;

+	}

 

-    /**

-     * Sets the value of the foreground property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setForeground(String value) {

-        this.foreground = value;

-    }

+	/**

+	 * Sets the value of the foreground property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setForeground(String value) {

+		this.foreground = value;

+	}

 

-    /**

-     * Gets the value of the background property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getBackground() {

-        return background;

-    }

+	/**

+	 * Gets the value of the background property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getBackground() {

+		return background;

+	}

 

-    /**

-     * Sets the value of the background property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setBackground(String value) {

-        this.background = value;

-    }

+	/**

+	 * Sets the value of the background property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setBackground(String value) {

+		this.background = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/PutType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/PutType.java
index 6d39546..9896f42 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/PutType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/PutType.java
@@ -2,24 +2,25 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for put-type complex type.

+ * <p>

+ * Java class for put-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="put-type">

@@ -38,96 +39,89 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "put-type", propOrder = {

-    "entry"

-})

+@XmlType(name = "put-type", propOrder = { "entry" })

 public class PutType {

 

-    protected List<EntryType> entry;

-    @XmlAttribute(name = "field")

-    protected String field;

-    @XmlAttribute(name = "forceNewObject")

-    protected Boolean forceNewObject;

+	protected List<EntryType> entry;

+	@XmlAttribute(name = "field")

+	protected String field;

+	@XmlAttribute(name = "forceNewObject")

+	protected Boolean forceNewObject;

 

-    /**

-     * Gets the value of the entry property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the entry property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getEntry().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link EntryType }

-     * 

-     * 

-     */

-    public List<EntryType> getEntry() {

-        if (entry == null) {

-            entry = new ArrayList<EntryType>();

-        }

-        return this.entry;

-    }

+	/**

+	 * Gets the value of the entry property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the entry

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getEntry().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link EntryType }

+	 * 

+	 * 

+	 */

+	public List<EntryType> getEntry() {

+		if (entry == null) {

+			entry = new ArrayList<EntryType>();

+		}

+		return this.entry;

+	}

 

-    /**

-     * Gets the value of the field property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getField() {

-        return field;

-    }

+	/**

+	 * Gets the value of the field property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getField() {

+		return field;

+	}

 

-    /**

-     * Sets the value of the field property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setField(String value) {

-        this.field = value;

-    }

+	/**

+	 * Sets the value of the field property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setField(String value) {

+		this.field = value;

+	}

 

-    /**

-     * Gets the value of the forceNewObject property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isForceNewObject() {

-        if (forceNewObject == null) {

-            return false;

-        } else {

-            return forceNewObject;

-        }

-    }

+	/**

+	 * Gets the value of the forceNewObject property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isForceNewObject() {

+		if (forceNewObject == null) {

+			return false;

+		} else {

+			return forceNewObject;

+		}

+	}

 

-    /**

-     * Sets the value of the forceNewObject property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setForceNewObject(Boolean value) {

-        this.forceNewObject = value;

-    }

+	/**

+	 * Sets the value of the forceNewObject property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setForceNewObject(Boolean value) {

+		this.forceNewObject = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/RangeType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/RangeType.java
index 16f92be..a99149d 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/RangeType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/RangeType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -13,11 +12,12 @@
 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for range-type complex type.

+ * <p>

+ * Java class for range-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="range-type">

@@ -38,109 +38,101 @@
 @XmlType(name = "range-type")

 public class RangeType {

 

-    @XmlAttribute(name = "lessThan")

-    protected String lessThan;

-    @XmlAttribute(name = "lessThanOrEqualTo")

-    protected String lessThanOrEqualTo;

-    @XmlAttribute(name = "greaterThan")

-    protected String greaterThan;

-    @XmlAttribute(name = "greaterThanOrEqualTo")

-    protected String greaterThanOrEqualTo;

+	@XmlAttribute(name = "lessThan")

+	protected String lessThan;

+	@XmlAttribute(name = "lessThanOrEqualTo")

+	protected String lessThanOrEqualTo;

+	@XmlAttribute(name = "greaterThan")

+	protected String greaterThan;

+	@XmlAttribute(name = "greaterThanOrEqualTo")

+	protected String greaterThanOrEqualTo;

 

-    /**

-     * Gets the value of the lessThan property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getLessThan() {

-        return lessThan;

-    }

+	/**

+	 * Gets the value of the lessThan property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getLessThan() {

+		return lessThan;

+	}

 

-    /**

-     * Sets the value of the lessThan property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setLessThan(String value) {

-        this.lessThan = value;

-    }

+	/**

+	 * Sets the value of the lessThan property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setLessThan(String value) {

+		this.lessThan = value;

+	}

 

-    /**

-     * Gets the value of the lessThanOrEqualTo property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getLessThanOrEqualTo() {

-        return lessThanOrEqualTo;

-    }

+	/**

+	 * Gets the value of the lessThanOrEqualTo property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getLessThanOrEqualTo() {

+		return lessThanOrEqualTo;

+	}

 

-    /**

-     * Sets the value of the lessThanOrEqualTo property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setLessThanOrEqualTo(String value) {

-        this.lessThanOrEqualTo = value;

-    }

+	/**

+	 * Sets the value of the lessThanOrEqualTo property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setLessThanOrEqualTo(String value) {

+		this.lessThanOrEqualTo = value;

+	}

 

-    /**

-     * Gets the value of the greaterThan property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getGreaterThan() {

-        return greaterThan;

-    }

+	/**

+	 * Gets the value of the greaterThan property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getGreaterThan() {

+		return greaterThan;

+	}

 

-    /**

-     * Sets the value of the greaterThan property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setGreaterThan(String value) {

-        this.greaterThan = value;

-    }

+	/**

+	 * Sets the value of the greaterThan property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setGreaterThan(String value) {

+		this.greaterThan = value;

+	}

 

-    /**

-     * Gets the value of the greaterThanOrEqualTo property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getGreaterThanOrEqualTo() {

-        return greaterThanOrEqualTo;

-    }

+	/**

+	 * Gets the value of the greaterThanOrEqualTo property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getGreaterThanOrEqualTo() {

+		return greaterThanOrEqualTo;

+	}

 

-    /**

-     * Sets the value of the greaterThanOrEqualTo property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setGreaterThanOrEqualTo(String value) {

-        this.greaterThanOrEqualTo = value;

-    }

+	/**

+	 * Sets the value of the greaterThanOrEqualTo property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setGreaterThanOrEqualTo(String value) {

+		this.greaterThanOrEqualTo = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/RegexType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/RegexType.java
index 03d215a..9f3599e 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/RegexType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/RegexType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -14,11 +13,12 @@
 import javax.xml.bind.annotation.XmlType;

 import javax.xml.bind.annotation.XmlValue;

 

-

 /**

- * <p>Java class for regex-type complex type.

+ * <p>

+ * Java class for regex-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="regex-type">

@@ -35,118 +35,108 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "regex-type", propOrder = {

-    "content"

-})

+@XmlType(name = "regex-type", propOrder = { "content" })

 public class RegexType {

 

-    @XmlValue

-    protected String content;

-    @XmlAttribute(name = "flags")

-    protected String flags;

-    @XmlAttribute(name = "split")

-    protected Boolean split;

-    @XmlAttribute(name = "expression")

-    protected String expression;

+	@XmlValue

+	protected String content;

+	@XmlAttribute(name = "flags")

+	protected String flags;

+	@XmlAttribute(name = "split")

+	protected Boolean split;

+	@XmlAttribute(name = "expression")

+	protected String expression;

 

-    /**

-     * Gets the value of the content property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getContent() {

-        return content;

-    }

+	/**

+	 * Gets the value of the content property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getContent() {

+		return content;

+	}

 

-    /**

-     * Sets the value of the content property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setContent(String value) {

-        this.content = value;

-    }

+	/**

+	 * Sets the value of the content property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setContent(String value) {

+		this.content = value;

+	}

 

-    /**

-     * Gets the value of the flags property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getFlags() {

-        return flags;

-    }

+	/**

+	 * Gets the value of the flags property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getFlags() {

+		return flags;

+	}

 

-    /**

-     * Sets the value of the flags property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setFlags(String value) {

-        this.flags = value;

-    }

+	/**

+	 * Sets the value of the flags property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setFlags(String value) {

+		this.flags = value;

+	}

 

-    /**

-     * Gets the value of the split property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isSplit() {

-        if (split == null) {

-            return false;

-        } else {

-            return split;

-        }

-    }

+	/**

+	 * Gets the value of the split property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isSplit() {

+		if (split == null) {

+			return false;

+		} else {

+			return split;

+		}

+	}

 

-    /**

-     * Sets the value of the split property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setSplit(Boolean value) {

-        this.split = value;

-    }

+	/**

+	 * Sets the value of the split property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setSplit(Boolean value) {

+		this.split = value;

+	}

 

-    /**

-     * Gets the value of the expression property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getExpression() {

-        return expression;

-    }

+	/**

+	 * Gets the value of the expression property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getExpression() {

+		return expression;

+	}

 

-    /**

-     * Sets the value of the expression property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setExpression(String value) {

-        this.expression = value;

-    }

+	/**

+	 * Sets the value of the expression property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setExpression(String value) {

+		this.expression = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ResourceManagerData.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ResourceManagerData.java
index 3ec3e72..058a453 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ResourceManagerData.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ResourceManagerData.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -14,11 +13,12 @@
 import javax.xml.bind.annotation.XmlElement;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for resource-manager-data complex type.

+ * <p>

+ * Java class for resource-manager-data complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="resource-manager-data">

@@ -38,116 +38,104 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "resource-manager-data", propOrder = {

-    "siteData",

-    "controlData",

-    "monitorData"

-})

+@XmlType(name = "resource-manager-data", propOrder = { "siteData", "controlData", "monitorData" })

 public class ResourceManagerData {

 

-    @XmlElement(name = "site-data")

-    protected SiteType siteData;

-    @XmlElement(name = "control-data")

-    protected ControlType controlData;

-    @XmlElement(name = "monitor-data")

-    protected MonitorType monitorData;

-    @XmlAttribute(name = "name")

-    protected String name;

+	@XmlElement(name = "site-data")

+	protected SiteType siteData;

+	@XmlElement(name = "control-data")

+	protected ControlType controlData;

+	@XmlElement(name = "monitor-data")

+	protected MonitorType monitorData;

+	@XmlAttribute(name = "name")

+	protected String name;

 

-    /**

-     * Gets the value of the siteData property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link SiteType }

-     *     

-     */

-    public SiteType getSiteData() {

-        return siteData;

-    }

+	/**

+	 * Gets the value of the siteData property.

+	 * 

+	 * @return

+	 *         possible object is {@link SiteType }

+	 * 

+	 */

+	public SiteType getSiteData() {

+		return siteData;

+	}

 

-    /**

-     * Sets the value of the siteData property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link SiteType }

-     *     

-     */

-    public void setSiteData(SiteType value) {

-        this.siteData = value;

-    }

+	/**

+	 * Sets the value of the siteData property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link SiteType }

+	 * 

+	 */

+	public void setSiteData(SiteType value) {

+		this.siteData = value;

+	}

 

-    /**

-     * Gets the value of the controlData property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link ControlType }

-     *     

-     */

-    public ControlType getControlData() {

-        return controlData;

-    }

+	/**

+	 * Gets the value of the controlData property.

+	 * 

+	 * @return

+	 *         possible object is {@link ControlType }

+	 * 

+	 */

+	public ControlType getControlData() {

+		return controlData;

+	}

 

-    /**

-     * Sets the value of the controlData property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link ControlType }

-     *     

-     */

-    public void setControlData(ControlType value) {

-        this.controlData = value;

-    }

+	/**

+	 * Sets the value of the controlData property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link ControlType }

+	 * 

+	 */

+	public void setControlData(ControlType value) {

+		this.controlData = value;

+	}

 

-    /**

-     * Gets the value of the monitorData property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link MonitorType }

-     *     

-     */

-    public MonitorType getMonitorData() {

-        return monitorData;

-    }

+	/**

+	 * Gets the value of the monitorData property.

+	 * 

+	 * @return

+	 *         possible object is {@link MonitorType }

+	 * 

+	 */

+	public MonitorType getMonitorData() {

+		return monitorData;

+	}

 

-    /**

-     * Sets the value of the monitorData property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link MonitorType }

-     *     

-     */

-    public void setMonitorData(MonitorType value) {

-        this.monitorData = value;

-    }

+	/**

+	 * Sets the value of the monitorData property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link MonitorType }

+	 * 

+	 */

+	public void setMonitorData(MonitorType value) {

+		this.monitorData = value;

+	}

 

-    /**

-     * Gets the value of the name property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getName() {

-        return name;

-    }

+	/**

+	 * Gets the value of the name property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getName() {

+		return name;

+	}

 

-    /**

-     * Sets the value of the name property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setName(String value) {

-        this.name = value;

-    }

+	/**

+	 * Sets the value of the name property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setName(String value) {

+		this.name = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/RowDataType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/RowDataType.java
index 12009ab..c3a5e55 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/RowDataType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/RowDataType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -13,11 +12,12 @@
 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for row-data-type complex type.

+ * <p>

+ * Java class for row-data-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="row-data-type">

@@ -37,87 +37,81 @@
 @XmlType(name = "row-data-type")

 public class RowDataType {

 

-    @XmlAttribute(name = "height")

-    protected Integer height;

-    @XmlAttribute(name = "width")

-    protected Integer width;

-    @XmlAttribute(name = "exclude")

-    protected Boolean exclude;

+	@XmlAttribute(name = "height")

+	protected Integer height;

+	@XmlAttribute(name = "width")

+	protected Integer width;

+	@XmlAttribute(name = "exclude")

+	protected Boolean exclude;

 

-    /**

-     * Gets the value of the height property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getHeight() {

-        return height;

-    }

+	/**

+	 * Gets the value of the height property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getHeight() {

+		return height;

+	}

 

-    /**

-     * Sets the value of the height property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setHeight(Integer value) {

-        this.height = value;

-    }

+	/**

+	 * Sets the value of the height property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setHeight(Integer value) {

+		this.height = value;

+	}

 

-    /**

-     * Gets the value of the width property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getWidth() {

-        return width;

-    }

+	/**

+	 * Gets the value of the width property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getWidth() {

+		return width;

+	}

 

-    /**

-     * Sets the value of the width property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setWidth(Integer value) {

-        this.width = value;

-    }

+	/**

+	 * Sets the value of the width property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setWidth(Integer value) {

+		this.width = value;

+	}

 

-    /**

-     * Gets the value of the exclude property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isExclude() {

-        if (exclude == null) {

-            return false;

-        } else {

-            return exclude;

-        }

-    }

+	/**

+	 * Gets the value of the exclude property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isExclude() {

+		if (exclude == null) {

+			return false;

+		} else {

+			return exclude;

+		}

+	}

 

-    /**

-     * Sets the value of the exclude property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setExclude(Boolean value) {

-        this.exclude = value;

-    }

+	/**

+	 * Sets the value of the exclude property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setExclude(Boolean value) {

+		this.exclude = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/RowLayoutType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/RowLayoutType.java
index e3eb9d9..65138c0 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/RowLayoutType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/RowLayoutType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -13,11 +12,12 @@
 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for row-layout-type complex type.

+ * <p>

+ * Java class for row-layout-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="row-layout-type">

@@ -47,363 +47,337 @@
 @XmlType(name = "row-layout-type")

 public class RowLayoutType {

 

-    @XmlAttribute(name = "type")

-    protected String type;

-    @XmlAttribute(name = "center")

-    protected Boolean center;

-    @XmlAttribute(name = "justify")

-    protected Boolean justify;

-    @XmlAttribute(name = "fill")

-    protected Boolean fill;

-    @XmlAttribute(name = "pack")

-    protected Boolean pack;

-    @XmlAttribute(name = "wrap")

-    protected Boolean wrap;

-    @XmlAttribute(name = "marginHeight")

-    protected Integer marginHeight;

-    @XmlAttribute(name = "marginWidth")

-    protected Integer marginWidth;

-    @XmlAttribute(name = "marginTop")

-    protected Integer marginTop;

-    @XmlAttribute(name = "marginBottom")

-    protected Integer marginBottom;

-    @XmlAttribute(name = "marginLeft")

-    protected Integer marginLeft;

-    @XmlAttribute(name = "marginRight")

-    protected Integer marginRight;

-    @XmlAttribute(name = "spacing")

-    protected Integer spacing;

+	@XmlAttribute(name = "type")

+	protected String type;

+	@XmlAttribute(name = "center")

+	protected Boolean center;

+	@XmlAttribute(name = "justify")

+	protected Boolean justify;

+	@XmlAttribute(name = "fill")

+	protected Boolean fill;

+	@XmlAttribute(name = "pack")

+	protected Boolean pack;

+	@XmlAttribute(name = "wrap")

+	protected Boolean wrap;

+	@XmlAttribute(name = "marginHeight")

+	protected Integer marginHeight;

+	@XmlAttribute(name = "marginWidth")

+	protected Integer marginWidth;

+	@XmlAttribute(name = "marginTop")

+	protected Integer marginTop;

+	@XmlAttribute(name = "marginBottom")

+	protected Integer marginBottom;

+	@XmlAttribute(name = "marginLeft")

+	protected Integer marginLeft;

+	@XmlAttribute(name = "marginRight")

+	protected Integer marginRight;

+	@XmlAttribute(name = "spacing")

+	protected Integer spacing;

 

-    /**

-     * Gets the value of the type property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getType() {

-        return type;

-    }

+	/**

+	 * Gets the value of the type property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getType() {

+		return type;

+	}

 

-    /**

-     * Sets the value of the type property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setType(String value) {

-        this.type = value;

-    }

+	/**

+	 * Sets the value of the type property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setType(String value) {

+		this.type = value;

+	}

 

-    /**

-     * Gets the value of the center property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isCenter() {

-        if (center == null) {

-            return false;

-        } else {

-            return center;

-        }

-    }

+	/**

+	 * Gets the value of the center property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isCenter() {

+		if (center == null) {

+			return false;

+		} else {

+			return center;

+		}

+	}

 

-    /**

-     * Sets the value of the center property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setCenter(Boolean value) {

-        this.center = value;

-    }

+	/**

+	 * Sets the value of the center property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setCenter(Boolean value) {

+		this.center = value;

+	}

 

-    /**

-     * Gets the value of the justify property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isJustify() {

-        if (justify == null) {

-            return false;

-        } else {

-            return justify;

-        }

-    }

+	/**

+	 * Gets the value of the justify property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isJustify() {

+		if (justify == null) {

+			return false;

+		} else {

+			return justify;

+		}

+	}

 

-    /**

-     * Sets the value of the justify property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setJustify(Boolean value) {

-        this.justify = value;

-    }

+	/**

+	 * Sets the value of the justify property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setJustify(Boolean value) {

+		this.justify = value;

+	}

 

-    /**

-     * Gets the value of the fill property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isFill() {

-        if (fill == null) {

-            return false;

-        } else {

-            return fill;

-        }

-    }

+	/**

+	 * Gets the value of the fill property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isFill() {

+		if (fill == null) {

+			return false;

+		} else {

+			return fill;

+		}

+	}

 

-    /**

-     * Sets the value of the fill property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setFill(Boolean value) {

-        this.fill = value;

-    }

+	/**

+	 * Sets the value of the fill property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setFill(Boolean value) {

+		this.fill = value;

+	}

 

-    /**

-     * Gets the value of the pack property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isPack() {

-        if (pack == null) {

-            return false;

-        } else {

-            return pack;

-        }

-    }

+	/**

+	 * Gets the value of the pack property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isPack() {

+		if (pack == null) {

+			return false;

+		} else {

+			return pack;

+		}

+	}

 

-    /**

-     * Sets the value of the pack property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setPack(Boolean value) {

-        this.pack = value;

-    }

+	/**

+	 * Sets the value of the pack property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setPack(Boolean value) {

+		this.pack = value;

+	}

 

-    /**

-     * Gets the value of the wrap property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isWrap() {

-        if (wrap == null) {

-            return false;

-        } else {

-            return wrap;

-        }

-    }

+	/**

+	 * Gets the value of the wrap property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isWrap() {

+		if (wrap == null) {

+			return false;

+		} else {

+			return wrap;

+		}

+	}

 

-    /**

-     * Sets the value of the wrap property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setWrap(Boolean value) {

-        this.wrap = value;

-    }

+	/**

+	 * Sets the value of the wrap property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setWrap(Boolean value) {

+		this.wrap = value;

+	}

 

-    /**

-     * Gets the value of the marginHeight property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getMarginHeight() {

-        return marginHeight;

-    }

+	/**

+	 * Gets the value of the marginHeight property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getMarginHeight() {

+		return marginHeight;

+	}

 

-    /**

-     * Sets the value of the marginHeight property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setMarginHeight(Integer value) {

-        this.marginHeight = value;

-    }

+	/**

+	 * Sets the value of the marginHeight property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setMarginHeight(Integer value) {

+		this.marginHeight = value;

+	}

 

-    /**

-     * Gets the value of the marginWidth property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getMarginWidth() {

-        return marginWidth;

-    }

+	/**

+	 * Gets the value of the marginWidth property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getMarginWidth() {

+		return marginWidth;

+	}

 

-    /**

-     * Sets the value of the marginWidth property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setMarginWidth(Integer value) {

-        this.marginWidth = value;

-    }

+	/**

+	 * Sets the value of the marginWidth property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setMarginWidth(Integer value) {

+		this.marginWidth = value;

+	}

 

-    /**

-     * Gets the value of the marginTop property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getMarginTop() {

-        return marginTop;

-    }

+	/**

+	 * Gets the value of the marginTop property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getMarginTop() {

+		return marginTop;

+	}

 

-    /**

-     * Sets the value of the marginTop property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setMarginTop(Integer value) {

-        this.marginTop = value;

-    }

+	/**

+	 * Sets the value of the marginTop property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setMarginTop(Integer value) {

+		this.marginTop = value;

+	}

 

-    /**

-     * Gets the value of the marginBottom property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getMarginBottom() {

-        return marginBottom;

-    }

+	/**

+	 * Gets the value of the marginBottom property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getMarginBottom() {

+		return marginBottom;

+	}

 

-    /**

-     * Sets the value of the marginBottom property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setMarginBottom(Integer value) {

-        this.marginBottom = value;

-    }

+	/**

+	 * Sets the value of the marginBottom property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setMarginBottom(Integer value) {

+		this.marginBottom = value;

+	}

 

-    /**

-     * Gets the value of the marginLeft property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getMarginLeft() {

-        return marginLeft;

-    }

+	/**

+	 * Gets the value of the marginLeft property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getMarginLeft() {

+		return marginLeft;

+	}

 

-    /**

-     * Sets the value of the marginLeft property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setMarginLeft(Integer value) {

-        this.marginLeft = value;

-    }

+	/**

+	 * Sets the value of the marginLeft property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setMarginLeft(Integer value) {

+		this.marginLeft = value;

+	}

 

-    /**

-     * Gets the value of the marginRight property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getMarginRight() {

-        return marginRight;

-    }

+	/**

+	 * Gets the value of the marginRight property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getMarginRight() {

+		return marginRight;

+	}

 

-    /**

-     * Sets the value of the marginRight property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setMarginRight(Integer value) {

-        this.marginRight = value;

-    }

+	/**

+	 * Sets the value of the marginRight property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setMarginRight(Integer value) {

+		this.marginRight = value;

+	}

 

-    /**

-     * Gets the value of the spacing property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public Integer getSpacing() {

-        return spacing;

-    }

+	/**

+	 * Gets the value of the spacing property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public Integer getSpacing() {

+		return spacing;

+	}

 

-    /**

-     * Sets the value of the spacing property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setSpacing(Integer value) {

-        this.spacing = value;

-    }

+	/**

+	 * Sets the value of the spacing property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setSpacing(Integer value) {

+		this.spacing = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ScriptType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ScriptType.java
index 74cb43e..b9c605e 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ScriptType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ScriptType.java
@@ -2,25 +2,26 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlElement;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for script-type complex type.

+ * <p>

+ * Java class for script-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="script-type">

@@ -40,128 +41,118 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "script-type", propOrder = {

-    "fileStagingLocation",

-    "line"

-})

+@XmlType(name = "script-type", propOrder = { "fileStagingLocation", "line" })

 public class ScriptType {

 

-    @XmlElement(name = "file-staging-location")

-    protected String fileStagingLocation;

-    @XmlElement(required = true)

-    protected List<LineType> line;

-    @XmlAttribute(name = "insertEnvironmentAfter")

-    protected Integer insertEnvironmentAfter;

-    @XmlAttribute(name = "deleteAfterSubmit")

-    protected Boolean deleteAfterSubmit;

+	@XmlElement(name = "file-staging-location")

+	protected String fileStagingLocation;

+	@XmlElement(required = true)

+	protected List<LineType> line;

+	@XmlAttribute(name = "insertEnvironmentAfter")

+	protected Integer insertEnvironmentAfter;

+	@XmlAttribute(name = "deleteAfterSubmit")

+	protected Boolean deleteAfterSubmit;

 

-    /**

-     * Gets the value of the fileStagingLocation property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getFileStagingLocation() {

-        return fileStagingLocation;

-    }

+	/**

+	 * Gets the value of the fileStagingLocation property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getFileStagingLocation() {

+		return fileStagingLocation;

+	}

 

-    /**

-     * Sets the value of the fileStagingLocation property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setFileStagingLocation(String value) {

-        this.fileStagingLocation = value;

-    }

+	/**

+	 * Sets the value of the fileStagingLocation property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setFileStagingLocation(String value) {

+		this.fileStagingLocation = value;

+	}

 

-    /**

-     * Gets the value of the line property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the line property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getLine().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link LineType }

-     * 

-     * 

-     */

-    public List<LineType> getLine() {

-        if (line == null) {

-            line = new ArrayList<LineType>();

-        }

-        return this.line;

-    }

+	/**

+	 * Gets the value of the line property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the line

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getLine().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link LineType }

+	 * 

+	 * 

+	 */

+	public List<LineType> getLine() {

+		if (line == null) {

+			line = new ArrayList<LineType>();

+		}

+		return this.line;

+	}

 

-    /**

-     * Gets the value of the insertEnvironmentAfter property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public int getInsertEnvironmentAfter() {

-        if (insertEnvironmentAfter == null) {

-            return -1;

-        } else {

-            return insertEnvironmentAfter;

-        }

-    }

+	/**

+	 * Gets the value of the insertEnvironmentAfter property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public int getInsertEnvironmentAfter() {

+		if (insertEnvironmentAfter == null) {

+			return -1;

+		} else {

+			return insertEnvironmentAfter;

+		}

+	}

 

-    /**

-     * Sets the value of the insertEnvironmentAfter property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setInsertEnvironmentAfter(Integer value) {

-        this.insertEnvironmentAfter = value;

-    }

+	/**

+	 * Sets the value of the insertEnvironmentAfter property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setInsertEnvironmentAfter(Integer value) {

+		this.insertEnvironmentAfter = value;

+	}

 

-    /**

-     * Gets the value of the deleteAfterSubmit property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isDeleteAfterSubmit() {

-        if (deleteAfterSubmit == null) {

-            return true;

-        } else {

-            return deleteAfterSubmit;

-        }

-    }

+	/**

+	 * Gets the value of the deleteAfterSubmit property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isDeleteAfterSubmit() {

+		if (deleteAfterSubmit == null) {

+			return true;

+		} else {

+			return deleteAfterSubmit;

+		}

+	}

 

-    /**

-     * Sets the value of the deleteAfterSubmit property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setDeleteAfterSubmit(Boolean value) {

-        this.deleteAfterSubmit = value;

-    }

+	/**

+	 * Sets the value of the deleteAfterSubmit property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setDeleteAfterSubmit(Boolean value) {

+		this.deleteAfterSubmit = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/SetType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/SetType.java
index 270cdf2..1caaf0e 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/SetType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/SetType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -13,11 +12,12 @@
 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for set-type complex type.

+ * <p>

+ * Java class for set-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="set-type">

@@ -36,91 +36,83 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "set-type", propOrder = {

-    "entry"

-})

+@XmlType(name = "set-type", propOrder = { "entry" })

 public class SetType {

 

-    protected EntryType entry;

-    @XmlAttribute(name = "field")

-    protected String field;

-    @XmlAttribute(name = "forceNewObject")

-    protected Boolean forceNewObject;

+	protected EntryType entry;

+	@XmlAttribute(name = "field")

+	protected String field;

+	@XmlAttribute(name = "forceNewObject")

+	protected Boolean forceNewObject;

 

-    /**

-     * Gets the value of the entry property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link EntryType }

-     *     

-     */

-    public EntryType getEntry() {

-        return entry;

-    }

+	/**

+	 * Gets the value of the entry property.

+	 * 

+	 * @return

+	 *         possible object is {@link EntryType }

+	 * 

+	 */

+	public EntryType getEntry() {

+		return entry;

+	}

 

-    /**

-     * Sets the value of the entry property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link EntryType }

-     *     

-     */

-    public void setEntry(EntryType value) {

-        this.entry = value;

-    }

+	/**

+	 * Sets the value of the entry property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link EntryType }

+	 * 

+	 */

+	public void setEntry(EntryType value) {

+		this.entry = value;

+	}

 

-    /**

-     * Gets the value of the field property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getField() {

-        return field;

-    }

+	/**

+	 * Gets the value of the field property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getField() {

+		return field;

+	}

 

-    /**

-     * Sets the value of the field property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setField(String value) {

-        this.field = value;

-    }

+	/**

+	 * Sets the value of the field property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setField(String value) {

+		this.field = value;

+	}

 

-    /**

-     * Gets the value of the forceNewObject property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isForceNewObject() {

-        if (forceNewObject == null) {

-            return false;

-        } else {

-            return forceNewObject;

-        }

-    }

+	/**

+	 * Gets the value of the forceNewObject property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isForceNewObject() {

+		if (forceNewObject == null) {

+			return false;

+		} else {

+			return forceNewObject;

+		}

+	}

 

-    /**

-     * Sets the value of the forceNewObject property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setForceNewObject(Boolean value) {

-        this.forceNewObject = value;

-    }

+	/**

+	 * Sets the value of the forceNewObject property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setForceNewObject(Boolean value) {

+		this.forceNewObject = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/SimpleCommandType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/SimpleCommandType.java
index 13ac21f..faa1c61 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/SimpleCommandType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/SimpleCommandType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -13,11 +12,12 @@
 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for simple-command-type complex type.

+ * <p>

+ * Java class for simple-command-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="simple-command-type">

@@ -41,199 +41,185 @@
 @XmlType(name = "simple-command-type")

 public class SimpleCommandType {

 

-    @XmlAttribute(name = "exec", required = true)

-    protected String exec;

-    @XmlAttribute(name = "directory")

-    protected String directory;

-    @XmlAttribute(name = "redirectStderr")

-    protected Boolean redirectStderr;

-    @XmlAttribute(name = "ignoreExitStatus")

-    protected Boolean ignoreExitStatus;

-    @XmlAttribute(name = "wait")

-    protected Boolean wait;

-    @XmlAttribute(name = "name")

-    protected String name;

-    @XmlAttribute(name = "flags")

-    protected String flags;

+	@XmlAttribute(name = "exec", required = true)

+	protected String exec;

+	@XmlAttribute(name = "directory")

+	protected String directory;

+	@XmlAttribute(name = "redirectStderr")

+	protected Boolean redirectStderr;

+	@XmlAttribute(name = "ignoreExitStatus")

+	protected Boolean ignoreExitStatus;

+	@XmlAttribute(name = "wait")

+	protected Boolean wait;

+	@XmlAttribute(name = "name")

+	protected String name;

+	@XmlAttribute(name = "flags")

+	protected String flags;

 

-    /**

-     * Gets the value of the exec property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getExec() {

-        return exec;

-    }

+	/**

+	 * Gets the value of the exec property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getExec() {

+		return exec;

+	}

 

-    /**

-     * Sets the value of the exec property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setExec(String value) {

-        this.exec = value;

-    }

+	/**

+	 * Sets the value of the exec property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setExec(String value) {

+		this.exec = value;

+	}

 

-    /**

-     * Gets the value of the directory property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getDirectory() {

-        return directory;

-    }

+	/**

+	 * Gets the value of the directory property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getDirectory() {

+		return directory;

+	}

 

-    /**

-     * Sets the value of the directory property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setDirectory(String value) {

-        this.directory = value;

-    }

+	/**

+	 * Sets the value of the directory property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setDirectory(String value) {

+		this.directory = value;

+	}

 

-    /**

-     * Gets the value of the redirectStderr property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isRedirectStderr() {

-        if (redirectStderr == null) {

-            return false;

-        } else {

-            return redirectStderr;

-        }

-    }

+	/**

+	 * Gets the value of the redirectStderr property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isRedirectStderr() {

+		if (redirectStderr == null) {

+			return false;

+		} else {

+			return redirectStderr;

+		}

+	}

 

-    /**

-     * Sets the value of the redirectStderr property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setRedirectStderr(Boolean value) {

-        this.redirectStderr = value;

-    }

+	/**

+	 * Sets the value of the redirectStderr property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setRedirectStderr(Boolean value) {

+		this.redirectStderr = value;

+	}

 

-    /**

-     * Gets the value of the ignoreExitStatus property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isIgnoreExitStatus() {

-        if (ignoreExitStatus == null) {

-            return false;

-        } else {

-            return ignoreExitStatus;

-        }

-    }

+	/**

+	 * Gets the value of the ignoreExitStatus property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isIgnoreExitStatus() {

+		if (ignoreExitStatus == null) {

+			return false;

+		} else {

+			return ignoreExitStatus;

+		}

+	}

 

-    /**

-     * Sets the value of the ignoreExitStatus property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setIgnoreExitStatus(Boolean value) {

-        this.ignoreExitStatus = value;

-    }

+	/**

+	 * Sets the value of the ignoreExitStatus property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setIgnoreExitStatus(Boolean value) {

+		this.ignoreExitStatus = value;

+	}

 

-    /**

-     * Gets the value of the wait property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isWait() {

-        if (wait == null) {

-            return true;

-        } else {

-            return wait;

-        }

-    }

+	/**

+	 * Gets the value of the wait property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isWait() {

+		if (wait == null) {

+			return true;

+		} else {

+			return wait;

+		}

+	}

 

-    /**

-     * Sets the value of the wait property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setWait(Boolean value) {

-        this.wait = value;

-    }

+	/**

+	 * Sets the value of the wait property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setWait(Boolean value) {

+		this.wait = value;

+	}

 

-    /**

-     * Gets the value of the name property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getName() {

-        return name;

-    }

+	/**

+	 * Gets the value of the name property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getName() {

+		return name;

+	}

 

-    /**

-     * Sets the value of the name property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setName(String value) {

-        this.name = value;

-    }

+	/**

+	 * Sets the value of the name property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setName(String value) {

+		this.name = value;

+	}

 

-    /**

-     * Gets the value of the flags property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getFlags() {

-        return flags;

-    }

+	/**

+	 * Gets the value of the flags property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getFlags() {

+		return flags;

+	}

 

-    /**

-     * Sets the value of the flags property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setFlags(String value) {

-        this.flags = value;

-    }

+	/**

+	 * Sets the value of the flags property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setFlags(String value) {

+		this.flags = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/SiteType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/SiteType.java
index e808bd9f..9ac4e32 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/SiteType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/SiteType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -13,11 +12,12 @@
 import javax.xml.bind.annotation.XmlElement;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for site-type complex type.

+ * <p>

+ * Java class for site-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="site-type">

@@ -37,117 +37,104 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "site-type", propOrder = {

-    "remoteServices",

-    "connectionName",

-    "controlConnection",

-    "monitorConnection"

-})

+@XmlType(name = "site-type", propOrder = { "remoteServices", "connectionName", "controlConnection", "monitorConnection" })

 public class SiteType {

 

-    @XmlElement(name = "remote-services")

-    protected String remoteServices;

-    @XmlElement(name = "connection-name")

-    protected String connectionName;

-    @XmlElement(name = "control-connection")

-    protected String controlConnection;

-    @XmlElement(name = "monitor-connection")

-    protected String monitorConnection;

+	@XmlElement(name = "remote-services")

+	protected String remoteServices;

+	@XmlElement(name = "connection-name")

+	protected String connectionName;

+	@XmlElement(name = "control-connection")

+	protected String controlConnection;

+	@XmlElement(name = "monitor-connection")

+	protected String monitorConnection;

 

-    /**

-     * Gets the value of the remoteServices property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getRemoteServices() {

-        return remoteServices;

-    }

+	/**

+	 * Gets the value of the remoteServices property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getRemoteServices() {

+		return remoteServices;

+	}

 

-    /**

-     * Sets the value of the remoteServices property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setRemoteServices(String value) {

-        this.remoteServices = value;

-    }

+	/**

+	 * Sets the value of the remoteServices property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setRemoteServices(String value) {

+		this.remoteServices = value;

+	}

 

-    /**

-     * Gets the value of the connectionName property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getConnectionName() {

-        return connectionName;

-    }

+	/**

+	 * Gets the value of the connectionName property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getConnectionName() {

+		return connectionName;

+	}

 

-    /**

-     * Sets the value of the connectionName property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setConnectionName(String value) {

-        this.connectionName = value;

-    }

+	/**

+	 * Sets the value of the connectionName property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setConnectionName(String value) {

+		this.connectionName = value;

+	}

 

-    /**

-     * Gets the value of the controlConnection property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getControlConnection() {

-        return controlConnection;

-    }

+	/**

+	 * Gets the value of the controlConnection property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getControlConnection() {

+		return controlConnection;

+	}

 

-    /**

-     * Sets the value of the controlConnection property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setControlConnection(String value) {

-        this.controlConnection = value;

-    }

+	/**

+	 * Sets the value of the controlConnection property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setControlConnection(String value) {

+		this.controlConnection = value;

+	}

 

-    /**

-     * Gets the value of the monitorConnection property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getMonitorConnection() {

-        return monitorConnection;

-    }

+	/**

+	 * Gets the value of the monitorConnection property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getMonitorConnection() {

+		return monitorConnection;

+	}

 

-    /**

-     * Sets the value of the monitorConnection property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setMonitorConnection(String value) {

-        this.monitorConnection = value;

-    }

+	/**

+	 * Sets the value of the monitorConnection property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setMonitorConnection(String value) {

+		this.monitorConnection = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/StepType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/StepType.java
index 9f098c6..e39de65 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/StepType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/StepType.java
@@ -2,24 +2,25 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for step-type complex type.

+ * <p>

+ * Java class for step-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="step-type">

@@ -40,144 +41,133 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "step-type", propOrder = {

-    "cmd"

-})

+@XmlType(name = "step-type", propOrder = { "cmd" })

 public class StepType {

 

-    protected List<SimpleCommandType> cmd;

-    @XmlAttribute(name = "id")

-    protected String id;

-    @XmlAttribute(name = "active")

-    protected String active;

-    @XmlAttribute(name = "exec_after")

-    protected String execAfter;

-    @XmlAttribute(name = "type")

-    protected String type;

+	protected List<SimpleCommandType> cmd;

+	@XmlAttribute(name = "id")

+	protected String id;

+	@XmlAttribute(name = "active")

+	protected String active;

+	@XmlAttribute(name = "exec_after")

+	protected String execAfter;

+	@XmlAttribute(name = "type")

+	protected String type;

 

-    /**

-     * Gets the value of the cmd property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the cmd property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getCmd().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link SimpleCommandType }

-     * 

-     * 

-     */

-    public List<SimpleCommandType> getCmd() {

-        if (cmd == null) {

-            cmd = new ArrayList<SimpleCommandType>();

-        }

-        return this.cmd;

-    }

+	/**

+	 * Gets the value of the cmd property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the cmd

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getCmd().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link SimpleCommandType }

+	 * 

+	 * 

+	 */

+	public List<SimpleCommandType> getCmd() {

+		if (cmd == null) {

+			cmd = new ArrayList<SimpleCommandType>();

+		}

+		return this.cmd;

+	}

 

-    /**

-     * Gets the value of the id property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getId() {

-        return id;

-    }

+	/**

+	 * Gets the value of the id property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getId() {

+		return id;

+	}

 

-    /**

-     * Sets the value of the id property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setId(String value) {

-        this.id = value;

-    }

+	/**

+	 * Sets the value of the id property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setId(String value) {

+		this.id = value;

+	}

 

-    /**

-     * Gets the value of the active property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getActive() {

-        return active;

-    }

+	/**

+	 * Gets the value of the active property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getActive() {

+		return active;

+	}

 

-    /**

-     * Sets the value of the active property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setActive(String value) {

-        this.active = value;

-    }

+	/**

+	 * Sets the value of the active property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setActive(String value) {

+		this.active = value;

+	}

 

-    /**

-     * Gets the value of the execAfter property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getExecAfter() {

-        return execAfter;

-    }

+	/**

+	 * Gets the value of the execAfter property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getExecAfter() {

+		return execAfter;

+	}

 

-    /**

-     * Sets the value of the execAfter property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setExecAfter(String value) {

-        this.execAfter = value;

-    }

+	/**

+	 * Sets the value of the execAfter property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setExecAfter(String value) {

+		this.execAfter = value;

+	}

 

-    /**

-     * Gets the value of the type property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getType() {

-        return type;

-    }

+	/**

+	 * Gets the value of the type property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getType() {

+		return type;

+	}

 

-    /**

-     * Sets the value of the type property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setType(String value) {

-        this.type = value;

-    }

+	/**

+	 * Sets the value of the type property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setType(String value) {

+		this.type = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TabControllerType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TabControllerType.java
index e0f10b28..dc6f589 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TabControllerType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TabControllerType.java
@@ -2,14 +2,14 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlAttribute;

@@ -17,11 +17,12 @@
 import javax.xml.bind.annotation.XmlElements;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for tab-controller-type complex type.

+ * <p>

+ * Java class for tab-controller-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="tab-controller-type">

@@ -57,352 +58,313 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "tab-controller-type", propOrder = {

-    "title",

-    "layout",

-    "layoutData",

-    "tooltip",

-    "font",

-    "tabFolderOrCompositeOrWidget",

-    "controlState"

-})

+@XmlType(name = "tab-controller-type", propOrder = { "title", "layout", "layoutData", "tooltip", "font",

+		"tabFolderOrCompositeOrWidget", "controlState" })

 public class TabControllerType {

 

-    @XmlElement(required = true)

-    protected String title;

-    protected LayoutType layout;

-    @XmlElement(name = "layout-data")

-    protected LayoutDataType layoutData;

-    protected String tooltip;

-    protected FontType font;

-    @XmlElements({

-        @XmlElement(name = "tab-folder", type = TabFolderType.class),

-        @XmlElement(name = "composite", type = CompositeType.class),

-        @XmlElement(name = "widget", type = WidgetType.class),

-        @XmlElement(name = "browse", type = BrowseType.class),

-        @XmlElement(name = "action", type = PushButtonType.class),

-        @XmlElement(name = "button-group", type = ButtonGroupType.class),

-        @XmlElement(name = "viewer", type = AttributeViewerType.class)

-    })

-    protected List<Object> tabFolderOrCompositeOrWidget;

-    @XmlElement(name = "control-state")

-    protected ControlStateType controlState;

-    @XmlAttribute(name = "style")

-    protected String style;

-    @XmlAttribute(name = "background")

-    protected String background;

-    @XmlAttribute(name = "includeWidgetValuesFrom")

-    protected String includeWidgetValuesFrom;

-    @XmlAttribute(name = "showViewConfig")

-    protected Boolean showViewConfig;

-    @XmlAttribute(name = "showViewExcluded")

-    protected Boolean showViewExcluded;

+	@XmlElement(required = true)

+	protected String title;

+	protected LayoutType layout;

+	@XmlElement(name = "layout-data")

+	protected LayoutDataType layoutData;

+	protected String tooltip;

+	protected FontType font;

+	@XmlElements({ @XmlElement(name = "tab-folder", type = TabFolderType.class),

+			@XmlElement(name = "composite", type = CompositeType.class), @XmlElement(name = "widget", type = WidgetType.class),

+			@XmlElement(name = "browse", type = BrowseType.class), @XmlElement(name = "action", type = PushButtonType.class),

+			@XmlElement(name = "button-group", type = ButtonGroupType.class),

+			@XmlElement(name = "viewer", type = AttributeViewerType.class) })

+	protected List<Object> tabFolderOrCompositeOrWidget;

+	@XmlElement(name = "control-state")

+	protected ControlStateType controlState;

+	@XmlAttribute(name = "style")

+	protected String style;

+	@XmlAttribute(name = "background")

+	protected String background;

+	@XmlAttribute(name = "includeWidgetValuesFrom")

+	protected String includeWidgetValuesFrom;

+	@XmlAttribute(name = "showViewConfig")

+	protected Boolean showViewConfig;

+	@XmlAttribute(name = "showViewExcluded")

+	protected Boolean showViewExcluded;

 

-    /**

-     * Gets the value of the title property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getTitle() {

-        return title;

-    }

+	/**

+	 * Gets the value of the title property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getTitle() {

+		return title;

+	}

 

-    /**

-     * Sets the value of the title property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setTitle(String value) {

-        this.title = value;

-    }

+	/**

+	 * Sets the value of the title property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setTitle(String value) {

+		this.title = value;

+	}

 

-    /**

-     * Gets the value of the layout property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link LayoutType }

-     *     

-     */

-    public LayoutType getLayout() {

-        return layout;

-    }

+	/**

+	 * Gets the value of the layout property.

+	 * 

+	 * @return

+	 *         possible object is {@link LayoutType }

+	 * 

+	 */

+	public LayoutType getLayout() {

+		return layout;

+	}

 

-    /**

-     * Sets the value of the layout property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link LayoutType }

-     *     

-     */

-    public void setLayout(LayoutType value) {

-        this.layout = value;

-    }

+	/**

+	 * Sets the value of the layout property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link LayoutType }

+	 * 

+	 */

+	public void setLayout(LayoutType value) {

+		this.layout = value;

+	}

 

-    /**

-     * Gets the value of the layoutData property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link LayoutDataType }

-     *     

-     */

-    public LayoutDataType getLayoutData() {

-        return layoutData;

-    }

+	/**

+	 * Gets the value of the layoutData property.

+	 * 

+	 * @return

+	 *         possible object is {@link LayoutDataType }

+	 * 

+	 */

+	public LayoutDataType getLayoutData() {

+		return layoutData;

+	}

 

-    /**

-     * Sets the value of the layoutData property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link LayoutDataType }

-     *     

-     */

-    public void setLayoutData(LayoutDataType value) {

-        this.layoutData = value;

-    }

+	/**

+	 * Sets the value of the layoutData property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link LayoutDataType }

+	 * 

+	 */

+	public void setLayoutData(LayoutDataType value) {

+		this.layoutData = value;

+	}

 

-    /**

-     * Gets the value of the tooltip property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getTooltip() {

-        return tooltip;

-    }

+	/**

+	 * Gets the value of the tooltip property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getTooltip() {

+		return tooltip;

+	}

 

-    /**

-     * Sets the value of the tooltip property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setTooltip(String value) {

-        this.tooltip = value;

-    }

+	/**

+	 * Sets the value of the tooltip property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setTooltip(String value) {

+		this.tooltip = value;

+	}

 

-    /**

-     * Gets the value of the font property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link FontType }

-     *     

-     */

-    public FontType getFont() {

-        return font;

-    }

+	/**

+	 * Gets the value of the font property.

+	 * 

+	 * @return

+	 *         possible object is {@link FontType }

+	 * 

+	 */

+	public FontType getFont() {

+		return font;

+	}

 

-    /**

-     * Sets the value of the font property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link FontType }

-     *     

-     */

-    public void setFont(FontType value) {

-        this.font = value;

-    }

+	/**

+	 * Sets the value of the font property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link FontType }

+	 * 

+	 */

+	public void setFont(FontType value) {

+		this.font = value;

+	}

 

-    /**

-     * Gets the value of the tabFolderOrCompositeOrWidget property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the tabFolderOrCompositeOrWidget property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getTabFolderOrCompositeOrWidget().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link TabFolderType }

-     * {@link CompositeType }

-     * {@link WidgetType }

-     * {@link BrowseType }

-     * {@link PushButtonType }

-     * {@link ButtonGroupType }

-     * {@link AttributeViewerType }

-     * 

-     * 

-     */

-    public List<Object> getTabFolderOrCompositeOrWidget() {

-        if (tabFolderOrCompositeOrWidget == null) {

-            tabFolderOrCompositeOrWidget = new ArrayList<Object>();

-        }

-        return this.tabFolderOrCompositeOrWidget;

-    }

+	/**

+	 * Gets the value of the tabFolderOrCompositeOrWidget property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the

+	 * tabFolderOrCompositeOrWidget property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getTabFolderOrCompositeOrWidget().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link TabFolderType } {@link CompositeType } {@link WidgetType }

+	 * {@link BrowseType } {@link PushButtonType } {@link ButtonGroupType } {@link AttributeViewerType }

+	 * 

+	 * 

+	 */

+	public List<Object> getTabFolderOrCompositeOrWidget() {

+		if (tabFolderOrCompositeOrWidget == null) {

+			tabFolderOrCompositeOrWidget = new ArrayList<Object>();

+		}

+		return this.tabFolderOrCompositeOrWidget;

+	}

 

-    /**

-     * Gets the value of the controlState property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link ControlStateType }

-     *     

-     */

-    public ControlStateType getControlState() {

-        return controlState;

-    }

+	/**

+	 * Gets the value of the controlState property.

+	 * 

+	 * @return

+	 *         possible object is {@link ControlStateType }

+	 * 

+	 */

+	public ControlStateType getControlState() {

+		return controlState;

+	}

 

-    /**

-     * Sets the value of the controlState property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link ControlStateType }

-     *     

-     */

-    public void setControlState(ControlStateType value) {

-        this.controlState = value;

-    }

+	/**

+	 * Sets the value of the controlState property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link ControlStateType }

+	 * 

+	 */

+	public void setControlState(ControlStateType value) {

+		this.controlState = value;

+	}

 

-    /**

-     * Gets the value of the style property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getStyle() {

-        return style;

-    }

+	/**

+	 * Gets the value of the style property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getStyle() {

+		return style;

+	}

 

-    /**

-     * Sets the value of the style property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setStyle(String value) {

-        this.style = value;

-    }

+	/**

+	 * Sets the value of the style property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setStyle(String value) {

+		this.style = value;

+	}

 

-    /**

-     * Gets the value of the background property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getBackground() {

-        return background;

-    }

+	/**

+	 * Gets the value of the background property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getBackground() {

+		return background;

+	}

 

-    /**

-     * Sets the value of the background property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setBackground(String value) {

-        this.background = value;

-    }

+	/**

+	 * Sets the value of the background property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setBackground(String value) {

+		this.background = value;

+	}

 

-    /**

-     * Gets the value of the includeWidgetValuesFrom property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getIncludeWidgetValuesFrom() {

-        return includeWidgetValuesFrom;

-    }

+	/**

+	 * Gets the value of the includeWidgetValuesFrom property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getIncludeWidgetValuesFrom() {

+		return includeWidgetValuesFrom;

+	}

 

-    /**

-     * Sets the value of the includeWidgetValuesFrom property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setIncludeWidgetValuesFrom(String value) {

-        this.includeWidgetValuesFrom = value;

-    }

+	/**

+	 * Sets the value of the includeWidgetValuesFrom property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setIncludeWidgetValuesFrom(String value) {

+		this.includeWidgetValuesFrom = value;

+	}

 

-    /**

-     * Gets the value of the showViewConfig property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isShowViewConfig() {

-        if (showViewConfig == null) {

-            return true;

-        } else {

-            return showViewConfig;

-        }

-    }

+	/**

+	 * Gets the value of the showViewConfig property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isShowViewConfig() {

+		if (showViewConfig == null) {

+			return true;

+		} else {

+			return showViewConfig;

+		}

+	}

 

-    /**

-     * Sets the value of the showViewConfig property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setShowViewConfig(Boolean value) {

-        this.showViewConfig = value;

-    }

+	/**

+	 * Sets the value of the showViewConfig property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setShowViewConfig(Boolean value) {

+		this.showViewConfig = value;

+	}

 

-    /**

-     * Gets the value of the showViewExcluded property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isShowViewExcluded() {

-        if (showViewExcluded == null) {

-            return false;

-        } else {

-            return showViewExcluded;

-        }

-    }

+	/**

+	 * Gets the value of the showViewExcluded property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isShowViewExcluded() {

+		if (showViewExcluded == null) {

+			return false;

+		} else {

+			return showViewExcluded;

+		}

+	}

 

-    /**

-     * Sets the value of the showViewExcluded property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setShowViewExcluded(Boolean value) {

-        this.showViewExcluded = value;

-    }

+	/**

+	 * Sets the value of the showViewExcluded property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setShowViewExcluded(Boolean value) {

+		this.showViewExcluded = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TabFolderType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TabFolderType.java
index d634fdc..09ba9af 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TabFolderType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TabFolderType.java
@@ -2,25 +2,26 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlElement;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for tab-folder-type complex type.

+ * <p>

+ * Java class for tab-folder-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="tab-folder-type">

@@ -44,225 +45,203 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "tab-folder-type", propOrder = {

-    "layout",

-    "layoutData",

-    "item",

-    "tooltip",

-    "font",

-    "controlState"

-})

+@XmlType(name = "tab-folder-type", propOrder = { "layout", "layoutData", "item", "tooltip", "font", "controlState" })

 public class TabFolderType {

 

-    protected LayoutType layout;

-    @XmlElement(name = "layout-data")

-    protected LayoutDataType layoutData;

-    @XmlElement(required = true)

-    protected List<TabItemType> item;

-    protected String tooltip;

-    protected FontType font;

-    @XmlElement(name = "control-state")

-    protected ControlStateType controlState;

-    @XmlAttribute(name = "style")

-    protected String style;

-    @XmlAttribute(name = "background")

-    protected String background;

+	protected LayoutType layout;

+	@XmlElement(name = "layout-data")

+	protected LayoutDataType layoutData;

+	@XmlElement(required = true)

+	protected List<TabItemType> item;

+	protected String tooltip;

+	protected FontType font;

+	@XmlElement(name = "control-state")

+	protected ControlStateType controlState;

+	@XmlAttribute(name = "style")

+	protected String style;

+	@XmlAttribute(name = "background")

+	protected String background;

 

-    /**

-     * Gets the value of the layout property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link LayoutType }

-     *     

-     */

-    public LayoutType getLayout() {

-        return layout;

-    }

+	/**

+	 * Gets the value of the layout property.

+	 * 

+	 * @return

+	 *         possible object is {@link LayoutType }

+	 * 

+	 */

+	public LayoutType getLayout() {

+		return layout;

+	}

 

-    /**

-     * Sets the value of the layout property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link LayoutType }

-     *     

-     */

-    public void setLayout(LayoutType value) {

-        this.layout = value;

-    }

+	/**

+	 * Sets the value of the layout property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link LayoutType }

+	 * 

+	 */

+	public void setLayout(LayoutType value) {

+		this.layout = value;

+	}

 

-    /**

-     * Gets the value of the layoutData property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link LayoutDataType }

-     *     

-     */

-    public LayoutDataType getLayoutData() {

-        return layoutData;

-    }

+	/**

+	 * Gets the value of the layoutData property.

+	 * 

+	 * @return

+	 *         possible object is {@link LayoutDataType }

+	 * 

+	 */

+	public LayoutDataType getLayoutData() {

+		return layoutData;

+	}

 

-    /**

-     * Sets the value of the layoutData property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link LayoutDataType }

-     *     

-     */

-    public void setLayoutData(LayoutDataType value) {

-        this.layoutData = value;

-    }

+	/**

+	 * Sets the value of the layoutData property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link LayoutDataType }

+	 * 

+	 */

+	public void setLayoutData(LayoutDataType value) {

+		this.layoutData = value;

+	}

 

-    /**

-     * Gets the value of the item property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the item property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getItem().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link TabItemType }

-     * 

-     * 

-     */

-    public List<TabItemType> getItem() {

-        if (item == null) {

-            item = new ArrayList<TabItemType>();

-        }

-        return this.item;

-    }

+	/**

+	 * Gets the value of the item property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the item

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getItem().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link TabItemType }

+	 * 

+	 * 

+	 */

+	public List<TabItemType> getItem() {

+		if (item == null) {

+			item = new ArrayList<TabItemType>();

+		}

+		return this.item;

+	}

 

-    /**

-     * Gets the value of the tooltip property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getTooltip() {

-        return tooltip;

-    }

+	/**

+	 * Gets the value of the tooltip property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getTooltip() {

+		return tooltip;

+	}

 

-    /**

-     * Sets the value of the tooltip property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setTooltip(String value) {

-        this.tooltip = value;

-    }

+	/**

+	 * Sets the value of the tooltip property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setTooltip(String value) {

+		this.tooltip = value;

+	}

 

-    /**

-     * Gets the value of the font property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link FontType }

-     *     

-     */

-    public FontType getFont() {

-        return font;

-    }

+	/**

+	 * Gets the value of the font property.

+	 * 

+	 * @return

+	 *         possible object is {@link FontType }

+	 * 

+	 */

+	public FontType getFont() {

+		return font;

+	}

 

-    /**

-     * Sets the value of the font property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link FontType }

-     *     

-     */

-    public void setFont(FontType value) {

-        this.font = value;

-    }

+	/**

+	 * Sets the value of the font property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link FontType }

+	 * 

+	 */

+	public void setFont(FontType value) {

+		this.font = value;

+	}

 

-    /**

-     * Gets the value of the controlState property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link ControlStateType }

-     *     

-     */

-    public ControlStateType getControlState() {

-        return controlState;

-    }

+	/**

+	 * Gets the value of the controlState property.

+	 * 

+	 * @return

+	 *         possible object is {@link ControlStateType }

+	 * 

+	 */

+	public ControlStateType getControlState() {

+		return controlState;

+	}

 

-    /**

-     * Sets the value of the controlState property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link ControlStateType }

-     *     

-     */

-    public void setControlState(ControlStateType value) {

-        this.controlState = value;

-    }

+	/**

+	 * Sets the value of the controlState property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link ControlStateType }

+	 * 

+	 */

+	public void setControlState(ControlStateType value) {

+		this.controlState = value;

+	}

 

-    /**

-     * Gets the value of the style property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getStyle() {

-        return style;

-    }

+	/**

+	 * Gets the value of the style property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getStyle() {

+		return style;

+	}

 

-    /**

-     * Sets the value of the style property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setStyle(String value) {

-        this.style = value;

-    }

+	/**

+	 * Sets the value of the style property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setStyle(String value) {

+		this.style = value;

+	}

 

-    /**

-     * Gets the value of the background property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getBackground() {

-        return background;

-    }

+	/**

+	 * Gets the value of the background property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getBackground() {

+		return background;

+	}

 

-    /**

-     * Sets the value of the background property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setBackground(String value) {

-        this.background = value;

-    }

+	/**

+	 * Sets the value of the background property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setBackground(String value) {

+		this.background = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TabItemType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TabItemType.java
index 3f0cfaf..5aa6b73 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TabItemType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TabItemType.java
@@ -2,14 +2,14 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlAttribute;

@@ -17,11 +17,12 @@
 import javax.xml.bind.annotation.XmlElements;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for tab-item-type complex type.

+ * <p>

+ * Java class for tab-item-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="tab-item-type">

@@ -54,266 +55,233 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "tab-item-type", propOrder = {

-    "layout",

-    "layoutData",

-    "title",

-    "tooltip",

-    "font",

-    "compositeOrTabFolderOrWidget",

-    "controlState"

-})

+@XmlType(name = "tab-item-type", propOrder = { "layout", "layoutData", "title", "tooltip", "font", "compositeOrTabFolderOrWidget",

+		"controlState" })

 public class TabItemType {

 

-    protected LayoutType layout;

-    @XmlElement(name = "layout-data")

-    protected LayoutDataType layoutData;

-    @XmlElement(required = true)

-    protected String title;

-    protected String tooltip;

-    protected FontType font;

-    @XmlElements({

-        @XmlElement(name = "composite", type = CompositeType.class),

-        @XmlElement(name = "tab-folder", type = TabFolderType.class),

-        @XmlElement(name = "widget", type = WidgetType.class),

-        @XmlElement(name = "browse", type = BrowseType.class),

-        @XmlElement(name = "action", type = PushButtonType.class),

-        @XmlElement(name = "button-group", type = ButtonGroupType.class),

-        @XmlElement(name = "viewer", type = AttributeViewerType.class)

-    })

-    protected List<Object> compositeOrTabFolderOrWidget;

-    @XmlElement(name = "control-state")

-    protected ControlStateType controlState;

-    @XmlAttribute(name = "style")

-    protected String style;

-    @XmlAttribute(name = "background")

-    protected String background;

+	protected LayoutType layout;

+	@XmlElement(name = "layout-data")

+	protected LayoutDataType layoutData;

+	@XmlElement(required = true)

+	protected String title;

+	protected String tooltip;

+	protected FontType font;

+	@XmlElements({ @XmlElement(name = "composite", type = CompositeType.class),

+			@XmlElement(name = "tab-folder", type = TabFolderType.class), @XmlElement(name = "widget", type = WidgetType.class),

+			@XmlElement(name = "browse", type = BrowseType.class), @XmlElement(name = "action", type = PushButtonType.class),

+			@XmlElement(name = "button-group", type = ButtonGroupType.class),

+			@XmlElement(name = "viewer", type = AttributeViewerType.class) })

+	protected List<Object> compositeOrTabFolderOrWidget;

+	@XmlElement(name = "control-state")

+	protected ControlStateType controlState;

+	@XmlAttribute(name = "style")

+	protected String style;

+	@XmlAttribute(name = "background")

+	protected String background;

 

-    /**

-     * Gets the value of the layout property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link LayoutType }

-     *     

-     */

-    public LayoutType getLayout() {

-        return layout;

-    }

+	/**

+	 * Gets the value of the layout property.

+	 * 

+	 * @return

+	 *         possible object is {@link LayoutType }

+	 * 

+	 */

+	public LayoutType getLayout() {

+		return layout;

+	}

 

-    /**

-     * Sets the value of the layout property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link LayoutType }

-     *     

-     */

-    public void setLayout(LayoutType value) {

-        this.layout = value;

-    }

+	/**

+	 * Sets the value of the layout property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link LayoutType }

+	 * 

+	 */

+	public void setLayout(LayoutType value) {

+		this.layout = value;

+	}

 

-    /**

-     * Gets the value of the layoutData property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link LayoutDataType }

-     *     

-     */

-    public LayoutDataType getLayoutData() {

-        return layoutData;

-    }

+	/**

+	 * Gets the value of the layoutData property.

+	 * 

+	 * @return

+	 *         possible object is {@link LayoutDataType }

+	 * 

+	 */

+	public LayoutDataType getLayoutData() {

+		return layoutData;

+	}

 

-    /**

-     * Sets the value of the layoutData property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link LayoutDataType }

-     *     

-     */

-    public void setLayoutData(LayoutDataType value) {

-        this.layoutData = value;

-    }

+	/**

+	 * Sets the value of the layoutData property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link LayoutDataType }

+	 * 

+	 */

+	public void setLayoutData(LayoutDataType value) {

+		this.layoutData = value;

+	}

 

-    /**

-     * Gets the value of the title property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getTitle() {

-        return title;

-    }

+	/**

+	 * Gets the value of the title property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getTitle() {

+		return title;

+	}

 

-    /**

-     * Sets the value of the title property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setTitle(String value) {

-        this.title = value;

-    }

+	/**

+	 * Sets the value of the title property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setTitle(String value) {

+		this.title = value;

+	}

 

-    /**

-     * Gets the value of the tooltip property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getTooltip() {

-        return tooltip;

-    }

+	/**

+	 * Gets the value of the tooltip property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getTooltip() {

+		return tooltip;

+	}

 

-    /**

-     * Sets the value of the tooltip property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setTooltip(String value) {

-        this.tooltip = value;

-    }

+	/**

+	 * Sets the value of the tooltip property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setTooltip(String value) {

+		this.tooltip = value;

+	}

 

-    /**

-     * Gets the value of the font property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link FontType }

-     *     

-     */

-    public FontType getFont() {

-        return font;

-    }

+	/**

+	 * Gets the value of the font property.

+	 * 

+	 * @return

+	 *         possible object is {@link FontType }

+	 * 

+	 */

+	public FontType getFont() {

+		return font;

+	}

 

-    /**

-     * Sets the value of the font property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link FontType }

-     *     

-     */

-    public void setFont(FontType value) {

-        this.font = value;

-    }

+	/**

+	 * Sets the value of the font property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link FontType }

+	 * 

+	 */

+	public void setFont(FontType value) {

+		this.font = value;

+	}

 

-    /**

-     * Gets the value of the compositeOrTabFolderOrWidget property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the compositeOrTabFolderOrWidget property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getCompositeOrTabFolderOrWidget().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link CompositeType }

-     * {@link TabFolderType }

-     * {@link WidgetType }

-     * {@link BrowseType }

-     * {@link PushButtonType }

-     * {@link ButtonGroupType }

-     * {@link AttributeViewerType }

-     * 

-     * 

-     */

-    public List<Object> getCompositeOrTabFolderOrWidget() {

-        if (compositeOrTabFolderOrWidget == null) {

-            compositeOrTabFolderOrWidget = new ArrayList<Object>();

-        }

-        return this.compositeOrTabFolderOrWidget;

-    }

+	/**

+	 * Gets the value of the compositeOrTabFolderOrWidget property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the

+	 * compositeOrTabFolderOrWidget property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getCompositeOrTabFolderOrWidget().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link CompositeType } {@link TabFolderType } {@link WidgetType }

+	 * {@link BrowseType } {@link PushButtonType } {@link ButtonGroupType } {@link AttributeViewerType }

+	 * 

+	 * 

+	 */

+	public List<Object> getCompositeOrTabFolderOrWidget() {

+		if (compositeOrTabFolderOrWidget == null) {

+			compositeOrTabFolderOrWidget = new ArrayList<Object>();

+		}

+		return this.compositeOrTabFolderOrWidget;

+	}

 

-    /**

-     * Gets the value of the controlState property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link ControlStateType }

-     *     

-     */

-    public ControlStateType getControlState() {

-        return controlState;

-    }

+	/**

+	 * Gets the value of the controlState property.

+	 * 

+	 * @return

+	 *         possible object is {@link ControlStateType }

+	 * 

+	 */

+	public ControlStateType getControlState() {

+		return controlState;

+	}

 

-    /**

-     * Sets the value of the controlState property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link ControlStateType }

-     *     

-     */

-    public void setControlState(ControlStateType value) {

-        this.controlState = value;

-    }

+	/**

+	 * Sets the value of the controlState property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link ControlStateType }

+	 * 

+	 */

+	public void setControlState(ControlStateType value) {

+		this.controlState = value;

+	}

 

-    /**

-     * Gets the value of the style property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getStyle() {

-        return style;

-    }

+	/**

+	 * Gets the value of the style property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getStyle() {

+		return style;

+	}

 

-    /**

-     * Sets the value of the style property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setStyle(String value) {

-        this.style = value;

-    }

+	/**

+	 * Sets the value of the style property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setStyle(String value) {

+		this.style = value;

+	}

 

-    /**

-     * Gets the value of the background property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getBackground() {

-        return background;

-    }

+	/**

+	 * Gets the value of the background property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getBackground() {

+		return background;

+	}

 

-    /**

-     * Sets the value of the background property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setBackground(String value) {

-        this.background = value;

-    }

+	/**

+	 * Sets the value of the background property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setBackground(String value) {

+		this.background = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TargetType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TargetType.java
index b76c80b..f1ea627 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TargetType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TargetType.java
@@ -2,25 +2,26 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlElement;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for target-type complex type.

+ * <p>

+ * Java class for target-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="target-type">

@@ -56,348 +57,319 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "target-type", propOrder = {

-    "match",

-    "test",

-    "_else"

-})

+@XmlType(name = "target-type", propOrder = { "match", "test", "_else" })

 public class TargetType {

 

-    @XmlElement(required = true)

-    protected List<MatchType> match;

-    protected List<TestType> test;

-    @XmlElement(name = "else")

-    protected TargetType.Else _else;

-    @XmlAttribute(name = "ref")

-    protected String ref;

-    @XmlAttribute(name = "matchAll")

-    protected Boolean matchAll;

-    @XmlAttribute(name = "allowOverwrites")

-    protected Boolean allowOverwrites;

+	@XmlElement(required = true)

+	protected List<MatchType> match;

+	protected List<TestType> test;

+	@XmlElement(name = "else")

+	protected TargetType.Else _else;

+	@XmlAttribute(name = "ref")

+	protected String ref;

+	@XmlAttribute(name = "matchAll")

+	protected Boolean matchAll;

+	@XmlAttribute(name = "allowOverwrites")

+	protected Boolean allowOverwrites;

 

-    /**

-     * Gets the value of the match property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the match property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getMatch().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link MatchType }

-     * 

-     * 

-     */

-    public List<MatchType> getMatch() {

-        if (match == null) {

-            match = new ArrayList<MatchType>();

-        }

-        return this.match;

-    }

+	/**

+	 * Gets the value of the match property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the match

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getMatch().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link MatchType }

+	 * 

+	 * 

+	 */

+	public List<MatchType> getMatch() {

+		if (match == null) {

+			match = new ArrayList<MatchType>();

+		}

+		return this.match;

+	}

 

-    /**

-     * Gets the value of the test property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the test property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getTest().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link TestType }

-     * 

-     * 

-     */

-    public List<TestType> getTest() {

-        if (test == null) {

-            test = new ArrayList<TestType>();

-        }

-        return this.test;

-    }

+	/**

+	 * Gets the value of the test property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the test

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getTest().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link TestType }

+	 * 

+	 * 

+	 */

+	public List<TestType> getTest() {

+		if (test == null) {

+			test = new ArrayList<TestType>();

+		}

+		return this.test;

+	}

 

-    /**

-     * Gets the value of the else property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link TargetType.Else }

-     *     

-     */

-    public TargetType.Else getElse() {

-        return _else;

-    }

+	/**

+	 * Gets the value of the else property.

+	 * 

+	 * @return

+	 *         possible object is {@link TargetType.Else }

+	 * 

+	 */

+	public TargetType.Else getElse() {

+		return _else;

+	}

 

-    /**

-     * Sets the value of the else property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link TargetType.Else }

-     *     

-     */

-    public void setElse(TargetType.Else value) {

-        this._else = value;

-    }

+	/**

+	 * Sets the value of the else property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link TargetType.Else }

+	 * 

+	 */

+	public void setElse(TargetType.Else value) {

+		this._else = value;

+	}

 

-    /**

-     * Gets the value of the ref property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getRef() {

-        return ref;

-    }

+	/**

+	 * Gets the value of the ref property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getRef() {

+		return ref;

+	}

 

-    /**

-     * Sets the value of the ref property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setRef(String value) {

-        this.ref = value;

-    }

+	/**

+	 * Sets the value of the ref property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setRef(String value) {

+		this.ref = value;

+	}

 

-    /**

-     * Gets the value of the matchAll property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isMatchAll() {

-        if (matchAll == null) {

-            return false;

-        } else {

-            return matchAll;

-        }

-    }

+	/**

+	 * Gets the value of the matchAll property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isMatchAll() {

+		if (matchAll == null) {

+			return false;

+		} else {

+			return matchAll;

+		}

+	}

 

-    /**

-     * Sets the value of the matchAll property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setMatchAll(Boolean value) {

-        this.matchAll = value;

-    }

+	/**

+	 * Sets the value of the matchAll property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setMatchAll(Boolean value) {

+		this.matchAll = value;

+	}

 

-    /**

-     * Gets the value of the allowOverwrites property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isAllowOverwrites() {

-        if (allowOverwrites == null) {

-            return false;

-        } else {

-            return allowOverwrites;

-        }

-    }

+	/**

+	 * Gets the value of the allowOverwrites property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isAllowOverwrites() {

+		if (allowOverwrites == null) {

+			return false;

+		} else {

+			return allowOverwrites;

+		}

+	}

 

-    /**

-     * Sets the value of the allowOverwrites property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setAllowOverwrites(Boolean value) {

-        this.allowOverwrites = value;

-    }

+	/**

+	 * Sets the value of the allowOverwrites property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setAllowOverwrites(Boolean value) {

+		this.allowOverwrites = value;

+	}

 

+	/**

+	 * <p>

+	 * Java class for anonymous complex type.

+	 * 

+	 * <p>

+	 * The following schema fragment specifies the expected content contained within this class.

+	 * 

+	 * <pre>

+	 * &lt;complexType>

+	 *   &lt;complexContent>

+	 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+	 *       &lt;choice>

+	 *         &lt;element name="add" type="{http://eclipse.org/ptp/rm}add-type"/>

+	 *         &lt;element name="append" type="{http://eclipse.org/ptp/rm}append-type"/>

+	 *         &lt;element name="put" type="{http://eclipse.org/ptp/rm}put-type"/>

+	 *         &lt;element name="set" type="{http://eclipse.org/ptp/rm}set-type"/>

+	 *         &lt;element name="throw" type="{http://eclipse.org/ptp/rm}throw-type"/>

+	 *       &lt;/choice>

+	 *     &lt;/restriction>

+	 *   &lt;/complexContent>

+	 * &lt;/complexType>

+	 * </pre>

+	 * 

+	 * 

+	 */

+	@XmlAccessorType(XmlAccessType.FIELD)

+	@XmlType(name = "", propOrder = { "add", "append", "put", "set", "_throw" })

+	public static class Else {

 

-    /**

-     * <p>Java class for anonymous complex type.

-     * 

-     * <p>The following schema fragment specifies the expected content contained within this class.

-     * 

-     * <pre>

-     * &lt;complexType>

-     *   &lt;complexContent>

-     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

-     *       &lt;choice>

-     *         &lt;element name="add" type="{http://eclipse.org/ptp/rm}add-type"/>

-     *         &lt;element name="append" type="{http://eclipse.org/ptp/rm}append-type"/>

-     *         &lt;element name="put" type="{http://eclipse.org/ptp/rm}put-type"/>

-     *         &lt;element name="set" type="{http://eclipse.org/ptp/rm}set-type"/>

-     *         &lt;element name="throw" type="{http://eclipse.org/ptp/rm}throw-type"/>

-     *       &lt;/choice>

-     *     &lt;/restriction>

-     *   &lt;/complexContent>

-     * &lt;/complexType>

-     * </pre>

-     * 

-     * 

-     */

-    @XmlAccessorType(XmlAccessType.FIELD)

-    @XmlType(name = "", propOrder = {

-        "add",

-        "append",

-        "put",

-        "set",

-        "_throw"

-    })

-    public static class Else {

+		protected AddType add;

+		protected AppendType append;

+		protected PutType put;

+		protected SetType set;

+		@XmlElement(name = "throw")

+		protected ThrowType _throw;

 

-        protected AddType add;

-        protected AppendType append;

-        protected PutType put;

-        protected SetType set;

-        @XmlElement(name = "throw")

-        protected ThrowType _throw;

+		/**

+		 * Gets the value of the add property.

+		 * 

+		 * @return

+		 *         possible object is {@link AddType }

+		 * 

+		 */

+		public AddType getAdd() {

+			return add;

+		}

 

-        /**

-         * Gets the value of the add property.

-         * 

-         * @return

-         *     possible object is

-         *     {@link AddType }

-         *     

-         */

-        public AddType getAdd() {

-            return add;

-        }

+		/**

+		 * Sets the value of the add property.

+		 * 

+		 * @param value

+		 *            allowed object is {@link AddType }

+		 * 

+		 */

+		public void setAdd(AddType value) {

+			this.add = value;

+		}

 

-        /**

-         * Sets the value of the add property.

-         * 

-         * @param value

-         *     allowed object is

-         *     {@link AddType }

-         *     

-         */

-        public void setAdd(AddType value) {

-            this.add = value;

-        }

+		/**

+		 * Gets the value of the append property.

+		 * 

+		 * @return

+		 *         possible object is {@link AppendType }

+		 * 

+		 */

+		public AppendType getAppend() {

+			return append;

+		}

 

-        /**

-         * Gets the value of the append property.

-         * 

-         * @return

-         *     possible object is

-         *     {@link AppendType }

-         *     

-         */

-        public AppendType getAppend() {

-            return append;

-        }

+		/**

+		 * Sets the value of the append property.

+		 * 

+		 * @param value

+		 *            allowed object is {@link AppendType }

+		 * 

+		 */

+		public void setAppend(AppendType value) {

+			this.append = value;

+		}

 

-        /**

-         * Sets the value of the append property.

-         * 

-         * @param value

-         *     allowed object is

-         *     {@link AppendType }

-         *     

-         */

-        public void setAppend(AppendType value) {

-            this.append = value;

-        }

+		/**

+		 * Gets the value of the put property.

+		 * 

+		 * @return

+		 *         possible object is {@link PutType }

+		 * 

+		 */

+		public PutType getPut() {

+			return put;

+		}

 

-        /**

-         * Gets the value of the put property.

-         * 

-         * @return

-         *     possible object is

-         *     {@link PutType }

-         *     

-         */

-        public PutType getPut() {

-            return put;

-        }

+		/**

+		 * Sets the value of the put property.

+		 * 

+		 * @param value

+		 *            allowed object is {@link PutType }

+		 * 

+		 */

+		public void setPut(PutType value) {

+			this.put = value;

+		}

 

-        /**

-         * Sets the value of the put property.

-         * 

-         * @param value

-         *     allowed object is

-         *     {@link PutType }

-         *     

-         */

-        public void setPut(PutType value) {

-            this.put = value;

-        }

+		/**

+		 * Gets the value of the set property.

+		 * 

+		 * @return

+		 *         possible object is {@link SetType }

+		 * 

+		 */

+		public SetType getSet() {

+			return set;

+		}

 

-        /**

-         * Gets the value of the set property.

-         * 

-         * @return

-         *     possible object is

-         *     {@link SetType }

-         *     

-         */

-        public SetType getSet() {

-            return set;

-        }

+		/**

+		 * Sets the value of the set property.

+		 * 

+		 * @param value

+		 *            allowed object is {@link SetType }

+		 * 

+		 */

+		public void setSet(SetType value) {

+			this.set = value;

+		}

 

-        /**

-         * Sets the value of the set property.

-         * 

-         * @param value

-         *     allowed object is

-         *     {@link SetType }

-         *     

-         */

-        public void setSet(SetType value) {

-            this.set = value;

-        }

+		/**

+		 * Gets the value of the throw property.

+		 * 

+		 * @return

+		 *         possible object is {@link ThrowType }

+		 * 

+		 */

+		public ThrowType getThrow() {

+			return _throw;

+		}

 

-        /**

-         * Gets the value of the throw property.

-         * 

-         * @return

-         *     possible object is

-         *     {@link ThrowType }

-         *     

-         */

-        public ThrowType getThrow() {

-            return _throw;

-        }

+		/**

+		 * Sets the value of the throw property.

+		 * 

+		 * @param value

+		 *            allowed object is {@link ThrowType }

+		 * 

+		 */

+		public void setThrow(ThrowType value) {

+			this._throw = value;

+		}

 

-        /**

-         * Sets the value of the throw property.

-         * 

-         * @param value

-         *     allowed object is

-         *     {@link ThrowType }

-         *     

-         */

-        public void setThrow(ThrowType value) {

-            this._throw = value;

-        }

-

-    }

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TemplateType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TemplateType.java
index 89879d0..2725124 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TemplateType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TemplateType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -13,11 +12,12 @@
 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for template-type complex type.

+ * <p>

+ * Java class for template-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="template-type">

@@ -36,61 +36,57 @@
 @XmlType(name = "template-type")

 public class TemplateType {

 

-    @XmlAttribute(name = "pattern")

-    protected String pattern;

-    @XmlAttribute(name = "separator")

-    protected String separator;

+	@XmlAttribute(name = "pattern")

+	protected String pattern;

+	@XmlAttribute(name = "separator")

+	protected String separator;

 

-    /**

-     * Gets the value of the pattern property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getPattern() {

-        return pattern;

-    }

+	/**

+	 * Gets the value of the pattern property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getPattern() {

+		return pattern;

+	}

 

-    /**

-     * Sets the value of the pattern property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setPattern(String value) {

-        this.pattern = value;

-    }

+	/**

+	 * Sets the value of the pattern property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setPattern(String value) {

+		this.pattern = value;

+	}

 

-    /**

-     * Gets the value of the separator property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getSeparator() {

-        if (separator == null) {

-            return " ";

-        } else {

-            return separator;

-        }

-    }

+	/**

+	 * Gets the value of the separator property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getSeparator() {

+		if (separator == null) {

+			return " ";

+		} else {

+			return separator;

+		}

+	}

 

-    /**

-     * Sets the value of the separator property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setSeparator(String value) {

-        this.separator = value;

-    }

+	/**

+	 * Sets the value of the separator property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setSeparator(String value) {

+		this.separator = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TestType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TestType.java
index 3596d4b..b3fc88d 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TestType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TestType.java
@@ -2,14 +2,14 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlAttribute;

@@ -17,11 +17,12 @@
 import javax.xml.bind.annotation.XmlElements;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for test-type complex type.

+ * <p>

+ * Java class for test-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="test-type">

@@ -75,240 +76,212 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "test-type", propOrder = {

-    "test",

-    "value",

-    "addOrAppendOrPut",

-    "_else"

-})

+@XmlType(name = "test-type", propOrder = { "test", "value", "addOrAppendOrPut", "_else" })

 public class TestType {

 

-    protected List<TestType> test;

-    protected List<String> value;

-    @XmlElements({

-        @XmlElement(name = "add", type = AddType.class),

-        @XmlElement(name = "append", type = AppendType.class),

-        @XmlElement(name = "put", type = PutType.class),

-        @XmlElement(name = "set", type = SetType.class),

-        @XmlElement(name = "throw", type = ThrowType.class)

-    })

-    protected List<Object> addOrAppendOrPut;

-    @XmlElement(name = "else")

-    protected TestType.Else _else;

-    @XmlAttribute(name = "op")

-    protected String op;

+	protected List<TestType> test;

+	protected List<String> value;

+	@XmlElements({ @XmlElement(name = "add", type = AddType.class), @XmlElement(name = "append", type = AppendType.class),

+			@XmlElement(name = "put", type = PutType.class), @XmlElement(name = "set", type = SetType.class),

+			@XmlElement(name = "throw", type = ThrowType.class) })

+	protected List<Object> addOrAppendOrPut;

+	@XmlElement(name = "else")

+	protected TestType.Else _else;

+	@XmlAttribute(name = "op")

+	protected String op;

 

-    /**

-     * Gets the value of the test property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the test property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getTest().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link TestType }

-     * 

-     * 

-     */

-    public List<TestType> getTest() {

-        if (test == null) {

-            test = new ArrayList<TestType>();

-        }

-        return this.test;

-    }

+	/**

+	 * Gets the value of the test property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the test

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getTest().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link TestType }

+	 * 

+	 * 

+	 */

+	public List<TestType> getTest() {

+		if (test == null) {

+			test = new ArrayList<TestType>();

+		}

+		return this.test;

+	}

 

-    /**

-     * Gets the value of the value property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the value property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getValue().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link String }

-     * 

-     * 

-     */

-    public List<String> getValue() {

-        if (value == null) {

-            value = new ArrayList<String>();

-        }

-        return this.value;

-    }

+	/**

+	 * Gets the value of the value property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the value

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getValue().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link String }

+	 * 

+	 * 

+	 */

+	public List<String> getValue() {

+		if (value == null) {

+			value = new ArrayList<String>();

+		}

+		return this.value;

+	}

 

-    /**

-     * Gets the value of the addOrAppendOrPut property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the addOrAppendOrPut property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getAddOrAppendOrPut().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link AddType }

-     * {@link AppendType }

-     * {@link PutType }

-     * {@link SetType }

-     * {@link ThrowType }

-     * 

-     * 

-     */

-    public List<Object> getAddOrAppendOrPut() {

-        if (addOrAppendOrPut == null) {

-            addOrAppendOrPut = new ArrayList<Object>();

-        }

-        return this.addOrAppendOrPut;

-    }

+	/**

+	 * Gets the value of the addOrAppendOrPut property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the

+	 * addOrAppendOrPut property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getAddOrAppendOrPut().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link AddType } {@link AppendType } {@link PutType } {@link SetType }

+	 * {@link ThrowType }

+	 * 

+	 * 

+	 */

+	public List<Object> getAddOrAppendOrPut() {

+		if (addOrAppendOrPut == null) {

+			addOrAppendOrPut = new ArrayList<Object>();

+		}

+		return this.addOrAppendOrPut;

+	}

 

-    /**

-     * Gets the value of the else property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link TestType.Else }

-     *     

-     */

-    public TestType.Else getElse() {

-        return _else;

-    }

+	/**

+	 * Gets the value of the else property.

+	 * 

+	 * @return

+	 *         possible object is {@link TestType.Else }

+	 * 

+	 */

+	public TestType.Else getElse() {

+		return _else;

+	}

 

-    /**

-     * Sets the value of the else property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link TestType.Else }

-     *     

-     */

-    public void setElse(TestType.Else value) {

-        this._else = value;

-    }

+	/**

+	 * Sets the value of the else property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link TestType.Else }

+	 * 

+	 */

+	public void setElse(TestType.Else value) {

+		this._else = value;

+	}

 

-    /**

-     * Gets the value of the op property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getOp() {

-        return op;

-    }

+	/**

+	 * Gets the value of the op property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getOp() {

+		return op;

+	}

 

-    /**

-     * Sets the value of the op property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setOp(String value) {

-        this.op = value;

-    }

+	/**

+	 * Sets the value of the op property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setOp(String value) {

+		this.op = value;

+	}

 

+	/**

+	 * <p>

+	 * Java class for anonymous complex type.

+	 * 

+	 * <p>

+	 * The following schema fragment specifies the expected content contained within this class.

+	 * 

+	 * <pre>

+	 * &lt;complexType>

+	 *   &lt;complexContent>

+	 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+	 *       &lt;choice maxOccurs="unbounded">

+	 *         &lt;element name="add" type="{http://eclipse.org/ptp/rm}add-type"/>

+	 *         &lt;element name="append" type="{http://eclipse.org/ptp/rm}append-type"/>

+	 *         &lt;element name="put" type="{http://eclipse.org/ptp/rm}put-type"/>

+	 *         &lt;element name="set" type="{http://eclipse.org/ptp/rm}set-type"/>

+	 *         &lt;element name="throw" type="{http://eclipse.org/ptp/rm}throw-type"/>

+	 *       &lt;/choice>

+	 *     &lt;/restriction>

+	 *   &lt;/complexContent>

+	 * &lt;/complexType>

+	 * </pre>

+	 * 

+	 * 

+	 */

+	@XmlAccessorType(XmlAccessType.FIELD)

+	@XmlType(name = "", propOrder = { "addOrAppendOrPut" })

+	public static class Else {

 

-    /**

-     * <p>Java class for anonymous complex type.

-     * 

-     * <p>The following schema fragment specifies the expected content contained within this class.

-     * 

-     * <pre>

-     * &lt;complexType>

-     *   &lt;complexContent>

-     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

-     *       &lt;choice maxOccurs="unbounded">

-     *         &lt;element name="add" type="{http://eclipse.org/ptp/rm}add-type"/>

-     *         &lt;element name="append" type="{http://eclipse.org/ptp/rm}append-type"/>

-     *         &lt;element name="put" type="{http://eclipse.org/ptp/rm}put-type"/>

-     *         &lt;element name="set" type="{http://eclipse.org/ptp/rm}set-type"/>

-     *         &lt;element name="throw" type="{http://eclipse.org/ptp/rm}throw-type"/>

-     *       &lt;/choice>

-     *     &lt;/restriction>

-     *   &lt;/complexContent>

-     * &lt;/complexType>

-     * </pre>

-     * 

-     * 

-     */

-    @XmlAccessorType(XmlAccessType.FIELD)

-    @XmlType(name = "", propOrder = {

-        "addOrAppendOrPut"

-    })

-    public static class Else {

+		@XmlElements({ @XmlElement(name = "add", type = AddType.class), @XmlElement(name = "append", type = AppendType.class),

+				@XmlElement(name = "put", type = PutType.class), @XmlElement(name = "set", type = SetType.class),

+				@XmlElement(name = "throw", type = ThrowType.class) })

+		protected List<Object> addOrAppendOrPut;

 

-        @XmlElements({

-            @XmlElement(name = "add", type = AddType.class),

-            @XmlElement(name = "append", type = AppendType.class),

-            @XmlElement(name = "put", type = PutType.class),

-            @XmlElement(name = "set", type = SetType.class),

-            @XmlElement(name = "throw", type = ThrowType.class)

-        })

-        protected List<Object> addOrAppendOrPut;

+		/**

+		 * Gets the value of the addOrAppendOrPut property.

+		 * 

+		 * <p>

+		 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+		 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the

+		 * addOrAppendOrPut property.

+		 * 

+		 * <p>

+		 * For example, to add a new item, do as follows:

+		 * 

+		 * <pre>

+		 * getAddOrAppendOrPut().add(newItem);

+		 * </pre>

+		 * 

+		 * 

+		 * <p>

+		 * Objects of the following type(s) are allowed in the list {@link AddType } {@link AppendType } {@link PutType }

+		 * {@link SetType } {@link ThrowType }

+		 * 

+		 * 

+		 */

+		public List<Object> getAddOrAppendOrPut() {

+			if (addOrAppendOrPut == null) {

+				addOrAppendOrPut = new ArrayList<Object>();

+			}

+			return this.addOrAppendOrPut;

+		}

 

-        /**

-         * Gets the value of the addOrAppendOrPut property.

-         * 

-         * <p>

-         * This accessor method returns a reference to the live list,

-         * not a snapshot. Therefore any modification you make to the

-         * returned list will be present inside the JAXB object.

-         * This is why there is not a <CODE>set</CODE> method for the addOrAppendOrPut property.

-         * 

-         * <p>

-         * For example, to add a new item, do as follows:

-         * <pre>

-         *    getAddOrAppendOrPut().add(newItem);

-         * </pre>

-         * 

-         * 

-         * <p>

-         * Objects of the following type(s) are allowed in the list

-         * {@link AddType }

-         * {@link AppendType }

-         * {@link PutType }

-         * {@link SetType }

-         * {@link ThrowType }

-         * 

-         * 

-         */

-        public List<Object> getAddOrAppendOrPut() {

-            if (addOrAppendOrPut == null) {

-                addOrAppendOrPut = new ArrayList<Object>();

-            }

-            return this.addOrAppendOrPut;

-        }

-

-    }

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ThrowType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ThrowType.java
index 86f6432..ec4f0b5 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ThrowType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ThrowType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -13,11 +12,12 @@
 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for throw-type complex type.

+ * <p>

+ * Java class for throw-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="throw-type">

@@ -36,87 +36,79 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "throw-type", propOrder = {

-    "entry"

-})

+@XmlType(name = "throw-type", propOrder = { "entry" })

 public class ThrowType {

 

-    protected EntryType entry;

-    @XmlAttribute(name = "field")

-    protected String field;

-    @XmlAttribute(name = "message")

-    protected String message;

+	protected EntryType entry;

+	@XmlAttribute(name = "field")

+	protected String field;

+	@XmlAttribute(name = "message")

+	protected String message;

 

-    /**

-     * Gets the value of the entry property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link EntryType }

-     *     

-     */

-    public EntryType getEntry() {

-        return entry;

-    }

+	/**

+	 * Gets the value of the entry property.

+	 * 

+	 * @return

+	 *         possible object is {@link EntryType }

+	 * 

+	 */

+	public EntryType getEntry() {

+		return entry;

+	}

 

-    /**

-     * Sets the value of the entry property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link EntryType }

-     *     

-     */

-    public void setEntry(EntryType value) {

-        this.entry = value;

-    }

+	/**

+	 * Sets the value of the entry property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link EntryType }

+	 * 

+	 */

+	public void setEntry(EntryType value) {

+		this.entry = value;

+	}

 

-    /**

-     * Gets the value of the field property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getField() {

-        return field;

-    }

+	/**

+	 * Gets the value of the field property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getField() {

+		return field;

+	}

 

-    /**

-     * Sets the value of the field property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setField(String value) {

-        this.field = value;

-    }

+	/**

+	 * Sets the value of the field property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setField(String value) {

+		this.field = value;

+	}

 

-    /**

-     * Gets the value of the message property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getMessage() {

-        return message;

-    }

+	/**

+	 * Gets the value of the message property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getMessage() {

+		return message;

+	}

 

-    /**

-     * Sets the value of the message property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setMessage(String value) {

-        this.message = value;

-    }

+	/**

+	 * Sets the value of the message property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setMessage(String value) {

+		this.message = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TokenizerType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TokenizerType.java
index 3242911..b87264f 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TokenizerType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/TokenizerType.java
@@ -2,25 +2,26 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlElement;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for tokenizer-type complex type.

+ * <p>

+ * Java class for tokenizer-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="tokenizer-type">

@@ -48,296 +49,272 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "tokenizer-type", propOrder = {

-    "type",

-    "target",

-    "exitOn",

-    "exitAfter"

-})

+@XmlType(name = "tokenizer-type", propOrder = { "type", "target", "exitOn", "exitAfter" })

 public class TokenizerType {

 

-    protected String type;

-    protected List<TargetType> target;

-    @XmlElement(name = "exit-on")

-    protected RegexType exitOn;

-    @XmlElement(name = "exit-after")

-    protected RegexType exitAfter;

-    @XmlAttribute(name = "delim")

-    protected String delim;

-    @XmlAttribute(name = "includeDelim")

-    protected Boolean includeDelim;

-    @XmlAttribute(name = "maxMatchLen")

-    protected Integer maxMatchLen;

-    @XmlAttribute(name = "all")

-    protected Boolean all;

-    @XmlAttribute(name = "save")

-    protected Integer save;

-    @XmlAttribute(name = "applyToAll")

-    protected Boolean applyToAll;

+	protected String type;

+	protected List<TargetType> target;

+	@XmlElement(name = "exit-on")

+	protected RegexType exitOn;

+	@XmlElement(name = "exit-after")

+	protected RegexType exitAfter;

+	@XmlAttribute(name = "delim")

+	protected String delim;

+	@XmlAttribute(name = "includeDelim")

+	protected Boolean includeDelim;

+	@XmlAttribute(name = "maxMatchLen")

+	protected Integer maxMatchLen;

+	@XmlAttribute(name = "all")

+	protected Boolean all;

+	@XmlAttribute(name = "save")

+	protected Integer save;

+	@XmlAttribute(name = "applyToAll")

+	protected Boolean applyToAll;

 

-    /**

-     * Gets the value of the type property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getType() {

-        return type;

-    }

+	/**

+	 * Gets the value of the type property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getType() {

+		return type;

+	}

 

-    /**

-     * Sets the value of the type property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setType(String value) {

-        this.type = value;

-    }

+	/**

+	 * Sets the value of the type property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setType(String value) {

+		this.type = value;

+	}

 

-    /**

-     * Gets the value of the target property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the target property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getTarget().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link TargetType }

-     * 

-     * 

-     */

-    public List<TargetType> getTarget() {

-        if (target == null) {

-            target = new ArrayList<TargetType>();

-        }

-        return this.target;

-    }

+	/**

+	 * Gets the value of the target property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the target

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getTarget().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link TargetType }

+	 * 

+	 * 

+	 */

+	public List<TargetType> getTarget() {

+		if (target == null) {

+			target = new ArrayList<TargetType>();

+		}

+		return this.target;

+	}

 

-    /**

-     * Gets the value of the exitOn property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link RegexType }

-     *     

-     */

-    public RegexType getExitOn() {

-        return exitOn;

-    }

+	/**

+	 * Gets the value of the exitOn property.

+	 * 

+	 * @return

+	 *         possible object is {@link RegexType }

+	 * 

+	 */

+	public RegexType getExitOn() {

+		return exitOn;

+	}

 

-    /**

-     * Sets the value of the exitOn property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link RegexType }

-     *     

-     */

-    public void setExitOn(RegexType value) {

-        this.exitOn = value;

-    }

+	/**

+	 * Sets the value of the exitOn property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link RegexType }

+	 * 

+	 */

+	public void setExitOn(RegexType value) {

+		this.exitOn = value;

+	}

 

-    /**

-     * Gets the value of the exitAfter property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link RegexType }

-     *     

-     */

-    public RegexType getExitAfter() {

-        return exitAfter;

-    }

+	/**

+	 * Gets the value of the exitAfter property.

+	 * 

+	 * @return

+	 *         possible object is {@link RegexType }

+	 * 

+	 */

+	public RegexType getExitAfter() {

+		return exitAfter;

+	}

 

-    /**

-     * Sets the value of the exitAfter property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link RegexType }

-     *     

-     */

-    public void setExitAfter(RegexType value) {

-        this.exitAfter = value;

-    }

+	/**

+	 * Sets the value of the exitAfter property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link RegexType }

+	 * 

+	 */

+	public void setExitAfter(RegexType value) {

+		this.exitAfter = value;

+	}

 

-    /**

-     * Gets the value of the delim property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getDelim() {

-        return delim;

-    }

+	/**

+	 * Gets the value of the delim property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getDelim() {

+		return delim;

+	}

 

-    /**

-     * Sets the value of the delim property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setDelim(String value) {

-        this.delim = value;

-    }

+	/**

+	 * Sets the value of the delim property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setDelim(String value) {

+		this.delim = value;

+	}

 

-    /**

-     * Gets the value of the includeDelim property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isIncludeDelim() {

-        if (includeDelim == null) {

-            return false;

-        } else {

-            return includeDelim;

-        }

-    }

+	/**

+	 * Gets the value of the includeDelim property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isIncludeDelim() {

+		if (includeDelim == null) {

+			return false;

+		} else {

+			return includeDelim;

+		}

+	}

 

-    /**

-     * Sets the value of the includeDelim property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setIncludeDelim(Boolean value) {

-        this.includeDelim = value;

-    }

+	/**

+	 * Sets the value of the includeDelim property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setIncludeDelim(Boolean value) {

+		this.includeDelim = value;

+	}

 

-    /**

-     * Gets the value of the maxMatchLen property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public int getMaxMatchLen() {

-        if (maxMatchLen == null) {

-            return  0;

-        } else {

-            return maxMatchLen;

-        }

-    }

+	/**

+	 * Gets the value of the maxMatchLen property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public int getMaxMatchLen() {

+		if (maxMatchLen == null) {

+			return 0;

+		} else {

+			return maxMatchLen;

+		}

+	}

 

-    /**

-     * Sets the value of the maxMatchLen property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setMaxMatchLen(Integer value) {

-        this.maxMatchLen = value;

-    }

+	/**

+	 * Sets the value of the maxMatchLen property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setMaxMatchLen(Integer value) {

+		this.maxMatchLen = value;

+	}

 

-    /**

-     * Gets the value of the all property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isAll() {

-        if (all == null) {

-            return false;

-        } else {

-            return all;

-        }

-    }

+	/**

+	 * Gets the value of the all property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isAll() {

+		if (all == null) {

+			return false;

+		} else {

+			return all;

+		}

+	}

 

-    /**

-     * Sets the value of the all property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setAll(Boolean value) {

-        this.all = value;

-    }

+	/**

+	 * Sets the value of the all property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setAll(Boolean value) {

+		this.all = value;

+	}

 

-    /**

-     * Gets the value of the save property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Integer }

-     *     

-     */

-    public int getSave() {

-        if (save == null) {

-            return  0;

-        } else {

-            return save;

-        }

-    }

+	/**

+	 * Gets the value of the save property.

+	 * 

+	 * @return

+	 *         possible object is {@link Integer }

+	 * 

+	 */

+	public int getSave() {

+		if (save == null) {

+			return 0;

+		} else {

+			return save;

+		}

+	}

 

-    /**

-     * Sets the value of the save property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Integer }

-     *     

-     */

-    public void setSave(Integer value) {

-        this.save = value;

-    }

+	/**

+	 * Sets the value of the save property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Integer }

+	 * 

+	 */

+	public void setSave(Integer value) {

+		this.save = value;

+	}

 

-    /**

-     * Gets the value of the applyToAll property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isApplyToAll() {

-        if (applyToAll == null) {

-            return false;

-        } else {

-            return applyToAll;

-        }

-    }

+	/**

+	 * Gets the value of the applyToAll property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isApplyToAll() {

+		if (applyToAll == null) {

+			return false;

+		} else {

+			return applyToAll;

+		}

+	}

 

-    /**

-     * Sets the value of the applyToAll property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setApplyToAll(Boolean value) {

-        this.applyToAll = value;

-    }

+	/**

+	 * Sets the value of the applyToAll property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setApplyToAll(Boolean value) {

+		this.applyToAll = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ValidatorType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ValidatorType.java
index dcf508f..e282355 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ValidatorType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ValidatorType.java
@@ -2,24 +2,25 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlElement;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for validator-type complex type.

+ * <p>

+ * Java class for validator-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="validator-type">

@@ -43,120 +44,108 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "validator-type", propOrder = {

-    "regex",

-    "fileInfo",

-    "range",

-    "errorMessage"

-})

+@XmlType(name = "validator-type", propOrder = { "regex", "fileInfo", "range", "errorMessage" })

 public class ValidatorType {

 

-    protected RegexType regex;

-    @XmlElement(name = "file-info")

-    protected FileMatchType fileInfo;

-    protected List<RangeType> range;

-    @XmlElement(name = "error-message")

-    protected String errorMessage;

+	protected RegexType regex;

+	@XmlElement(name = "file-info")

+	protected FileMatchType fileInfo;

+	protected List<RangeType> range;

+	@XmlElement(name = "error-message")

+	protected String errorMessage;

 

-    /**

-     * Gets the value of the regex property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link RegexType }

-     *     

-     */

-    public RegexType getRegex() {

-        return regex;

-    }

+	/**

+	 * Gets the value of the regex property.

+	 * 

+	 * @return

+	 *         possible object is {@link RegexType }

+	 * 

+	 */

+	public RegexType getRegex() {

+		return regex;

+	}

 

-    /**

-     * Sets the value of the regex property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link RegexType }

-     *     

-     */

-    public void setRegex(RegexType value) {

-        this.regex = value;

-    }

+	/**

+	 * Sets the value of the regex property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link RegexType }

+	 * 

+	 */

+	public void setRegex(RegexType value) {

+		this.regex = value;

+	}

 

-    /**

-     * Gets the value of the fileInfo property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link FileMatchType }

-     *     

-     */

-    public FileMatchType getFileInfo() {

-        return fileInfo;

-    }

+	/**

+	 * Gets the value of the fileInfo property.

+	 * 

+	 * @return

+	 *         possible object is {@link FileMatchType }

+	 * 

+	 */

+	public FileMatchType getFileInfo() {

+		return fileInfo;

+	}

 

-    /**

-     * Sets the value of the fileInfo property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link FileMatchType }

-     *     

-     */

-    public void setFileInfo(FileMatchType value) {

-        this.fileInfo = value;

-    }

+	/**

+	 * Sets the value of the fileInfo property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link FileMatchType }

+	 * 

+	 */

+	public void setFileInfo(FileMatchType value) {

+		this.fileInfo = value;

+	}

 

-    /**

-     * Gets the value of the range property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the range property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getRange().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link RangeType }

-     * 

-     * 

-     */

-    public List<RangeType> getRange() {

-        if (range == null) {

-            range = new ArrayList<RangeType>();

-        }

-        return this.range;

-    }

+	/**

+	 * Gets the value of the range property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the range

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getRange().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link RangeType }

+	 * 

+	 * 

+	 */

+	public List<RangeType> getRange() {

+		if (range == null) {

+			range = new ArrayList<RangeType>();

+		}

+		return this.range;

+	}

 

-    /**

-     * Gets the value of the errorMessage property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getErrorMessage() {

-        return errorMessage;

-    }

+	/**

+	 * Gets the value of the errorMessage property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getErrorMessage() {

+		return errorMessage;

+	}

 

-    /**

-     * Sets the value of the errorMessage property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setErrorMessage(String value) {

-        this.errorMessage = value;

-    }

+	/**

+	 * Sets the value of the errorMessage property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setErrorMessage(String value) {

+		this.errorMessage = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/VarType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/VarType.java
index 5f2add6..ad46f8a 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/VarType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/VarType.java
@@ -2,10 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import javax.xml.bind.annotation.XmlAccessType;

@@ -13,11 +12,12 @@
 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for var-type complex type.

+ * <p>

+ * Java class for var-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="var-type">

@@ -36,57 +36,53 @@
 @XmlType(name = "var-type")

 public class VarType {

 

-    @XmlAttribute(name = "key")

-    protected String key;

-    @XmlAttribute(name = "value")

-    protected String value;

+	@XmlAttribute(name = "key")

+	protected String key;

+	@XmlAttribute(name = "value")

+	protected String value;

 

-    /**

-     * Gets the value of the key property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getKey() {

-        return key;

-    }

+	/**

+	 * Gets the value of the key property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getKey() {

+		return key;

+	}

 

-    /**

-     * Sets the value of the key property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setKey(String value) {

-        this.key = value;

-    }

+	/**

+	 * Sets the value of the key property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setKey(String value) {

+		this.key = value;

+	}

 

-    /**

-     * Gets the value of the value property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getValue() {

-        return value;

-    }

+	/**

+	 * Gets the value of the value property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getValue() {

+		return value;

+	}

 

-    /**

-     * Sets the value of the value property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setValue(String value) {

-        this.value = value;

-    }

+	/**

+	 * Sets the value of the value property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setValue(String value) {

+		this.value = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/VardefsType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/VardefsType.java
index ba0b929..073414b 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/VardefsType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/VardefsType.java
@@ -2,23 +2,24 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for vardefs-type complex type.

+ * <p>

+ * Java class for vardefs-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="vardefs-type">

@@ -35,40 +36,37 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "vardefs-type", propOrder = {

-    "var"

-})

+@XmlType(name = "vardefs-type", propOrder = { "var" })

 public class VardefsType {

 

-    protected List<VarType> var;

+	protected List<VarType> var;

 

-    /**

-     * Gets the value of the var property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the var property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getVar().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link VarType }

-     * 

-     * 

-     */

-    public List<VarType> getVar() {

-        if (var == null) {

-            var = new ArrayList<VarType>();

-        }

-        return this.var;

-    }

+	/**

+	 * Gets the value of the var property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the var

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getVar().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link VarType }

+	 * 

+	 * 

+	 */

+	public List<VarType> getVar() {

+		if (var == null) {

+			var = new ArrayList<VarType>();

+		}

+		return this.var;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ViewerItemsType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ViewerItemsType.java
index ae2c045..0294be9 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ViewerItemsType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/ViewerItemsType.java
@@ -2,24 +2,25 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for viewer-items-type complex type.

+ * <p>

+ * Java class for viewer-items-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="viewer-items-type">

@@ -39,131 +40,122 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "viewer-items-type", propOrder = {

-    "include",

-    "exclude"

-})

+@XmlType(name = "viewer-items-type", propOrder = { "include", "exclude" })

 public class ViewerItemsType {

 

-    protected List<String> include;

-    protected List<String> exclude;

-    @XmlAttribute(name = "allPredefined")

-    protected Boolean allPredefined;

-    @XmlAttribute(name = "allDiscovered")

-    protected Boolean allDiscovered;

+	protected List<String> include;

+	protected List<String> exclude;

+	@XmlAttribute(name = "allPredefined")

+	protected Boolean allPredefined;

+	@XmlAttribute(name = "allDiscovered")

+	protected Boolean allDiscovered;

 

-    /**

-     * Gets the value of the include property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the include property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getInclude().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link String }

-     * 

-     * 

-     */

-    public List<String> getInclude() {

-        if (include == null) {

-            include = new ArrayList<String>();

-        }

-        return this.include;

-    }

+	/**

+	 * Gets the value of the include property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the include

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getInclude().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link String }

+	 * 

+	 * 

+	 */

+	public List<String> getInclude() {

+		if (include == null) {

+			include = new ArrayList<String>();

+		}

+		return this.include;

+	}

 

-    /**

-     * Gets the value of the exclude property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the exclude property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getExclude().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link String }

-     * 

-     * 

-     */

-    public List<String> getExclude() {

-        if (exclude == null) {

-            exclude = new ArrayList<String>();

-        }

-        return this.exclude;

-    }

+	/**

+	 * Gets the value of the exclude property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the exclude

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getExclude().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link String }

+	 * 

+	 * 

+	 */

+	public List<String> getExclude() {

+		if (exclude == null) {

+			exclude = new ArrayList<String>();

+		}

+		return this.exclude;

+	}

 

-    /**

-     * Gets the value of the allPredefined property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isAllPredefined() {

-        if (allPredefined == null) {

-            return false;

-        } else {

-            return allPredefined;

-        }

-    }

+	/**

+	 * Gets the value of the allPredefined property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isAllPredefined() {

+		if (allPredefined == null) {

+			return false;

+		} else {

+			return allPredefined;

+		}

+	}

 

-    /**

-     * Sets the value of the allPredefined property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setAllPredefined(Boolean value) {

-        this.allPredefined = value;

-    }

+	/**

+	 * Sets the value of the allPredefined property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setAllPredefined(Boolean value) {

+		this.allPredefined = value;

+	}

 

-    /**

-     * Gets the value of the allDiscovered property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isAllDiscovered() {

-        if (allDiscovered == null) {

-            return false;

-        } else {

-            return allDiscovered;

-        }

-    }

+	/**

+	 * Gets the value of the allDiscovered property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isAllDiscovered() {

+		if (allDiscovered == null) {

+			return false;

+		} else {

+			return allDiscovered;

+		}

+	}

 

-    /**

-     * Sets the value of the allDiscovered property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setAllDiscovered(Boolean value) {

-        this.allDiscovered = value;

-    }

+	/**

+	 * Sets the value of the allDiscovered property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setAllDiscovered(Boolean value) {

+		this.allDiscovered = value;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/WidgetType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/WidgetType.java
index 8cd0e9e..4920717 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/WidgetType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/WidgetType.java
@@ -2,25 +2,26 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlAttribute;

 import javax.xml.bind.annotation.XmlElement;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for widget-type complex type.

+ * <p>

+ * Java class for widget-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="widget-type">

@@ -74,498 +75,457 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "widget-type", propOrder = {

-    "layoutData",

-    "font",

-    "tooltip",

-    "itemsFrom",

-    "fixedText",

-    "dynamicText",

-    "controlState"

-})

+@XmlType(name = "widget-type", propOrder = { "layoutData", "font", "tooltip", "itemsFrom", "fixedText", "dynamicText",

+		"controlState" })

 public class WidgetType {

 

-    @XmlElement(name = "layout-data")

-    protected LayoutDataType layoutData;

-    protected FontType font;

-    protected String tooltip;

-    @XmlElement(name = "items-from")

-    protected String itemsFrom;

-    @XmlElement(name = "fixed-text")

-    protected String fixedText;

-    @XmlElement(name = "dynamic-text")

-    protected WidgetType.DynamicText dynamicText;

-    @XmlElement(name = "control-state")

-    protected ControlStateType controlState;

-    @XmlAttribute(name = "type")

-    protected String type;

-    @XmlAttribute(name = "typeId")

-    protected String typeId;

-    @XmlAttribute(name = "buttonId")

-    protected String buttonId;

-    @XmlAttribute(name = "title")

-    protected String title;

-    @XmlAttribute(name = "style")

-    protected String style;

-    @XmlAttribute(name = "readOnly")

-    protected Boolean readOnly;

-    @XmlAttribute(name = "attribute")

-    protected String attribute;

-    @XmlAttribute(name = "foreground")

-    protected String foreground;

-    @XmlAttribute(name = "background")

-    protected String background;

+	@XmlElement(name = "layout-data")

+	protected LayoutDataType layoutData;

+	protected FontType font;

+	protected String tooltip;

+	@XmlElement(name = "items-from")

+	protected String itemsFrom;

+	@XmlElement(name = "fixed-text")

+	protected String fixedText;

+	@XmlElement(name = "dynamic-text")

+	protected WidgetType.DynamicText dynamicText;

+	@XmlElement(name = "control-state")

+	protected ControlStateType controlState;

+	@XmlAttribute(name = "type")

+	protected String type;

+	@XmlAttribute(name = "typeId")

+	protected String typeId;

+	@XmlAttribute(name = "buttonId")

+	protected String buttonId;

+	@XmlAttribute(name = "title")

+	protected String title;

+	@XmlAttribute(name = "style")

+	protected String style;

+	@XmlAttribute(name = "readOnly")

+	protected Boolean readOnly;

+	@XmlAttribute(name = "attribute")

+	protected String attribute;

+	@XmlAttribute(name = "foreground")

+	protected String foreground;

+	@XmlAttribute(name = "background")

+	protected String background;

 

-    /**

-     * Gets the value of the layoutData property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link LayoutDataType }

-     *     

-     */

-    public LayoutDataType getLayoutData() {

-        return layoutData;

-    }

+	/**

+	 * Gets the value of the layoutData property.

+	 * 

+	 * @return

+	 *         possible object is {@link LayoutDataType }

+	 * 

+	 */

+	public LayoutDataType getLayoutData() {

+		return layoutData;

+	}

 

-    /**

-     * Sets the value of the layoutData property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link LayoutDataType }

-     *     

-     */

-    public void setLayoutData(LayoutDataType value) {

-        this.layoutData = value;

-    }

+	/**

+	 * Sets the value of the layoutData property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link LayoutDataType }

+	 * 

+	 */

+	public void setLayoutData(LayoutDataType value) {

+		this.layoutData = value;

+	}

 

-    /**

-     * Gets the value of the font property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link FontType }

-     *     

-     */

-    public FontType getFont() {

-        return font;

-    }

+	/**

+	 * Gets the value of the font property.

+	 * 

+	 * @return

+	 *         possible object is {@link FontType }

+	 * 

+	 */

+	public FontType getFont() {

+		return font;

+	}

 

-    /**

-     * Sets the value of the font property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link FontType }

-     *     

-     */

-    public void setFont(FontType value) {

-        this.font = value;

-    }

+	/**

+	 * Sets the value of the font property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link FontType }

+	 * 

+	 */

+	public void setFont(FontType value) {

+		this.font = value;

+	}

 

-    /**

-     * Gets the value of the tooltip property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getTooltip() {

-        return tooltip;

-    }

+	/**

+	 * Gets the value of the tooltip property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getTooltip() {

+		return tooltip;

+	}

 

-    /**

-     * Sets the value of the tooltip property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setTooltip(String value) {

-        this.tooltip = value;

-    }

+	/**

+	 * Sets the value of the tooltip property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setTooltip(String value) {

+		this.tooltip = value;

+	}

 

-    /**

-     * Gets the value of the itemsFrom property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getItemsFrom() {

-        return itemsFrom;

-    }

+	/**

+	 * Gets the value of the itemsFrom property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getItemsFrom() {

+		return itemsFrom;

+	}

 

-    /**

-     * Sets the value of the itemsFrom property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setItemsFrom(String value) {

-        this.itemsFrom = value;

-    }

+	/**

+	 * Sets the value of the itemsFrom property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setItemsFrom(String value) {

+		this.itemsFrom = value;

+	}

 

-    /**

-     * Gets the value of the fixedText property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getFixedText() {

-        return fixedText;

-    }

+	/**

+	 * Gets the value of the fixedText property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getFixedText() {

+		return fixedText;

+	}

 

-    /**

-     * Sets the value of the fixedText property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setFixedText(String value) {

-        this.fixedText = value;

-    }

+	/**

+	 * Sets the value of the fixedText property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setFixedText(String value) {

+		this.fixedText = value;

+	}

 

-    /**

-     * Gets the value of the dynamicText property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link WidgetType.DynamicText }

-     *     

-     */

-    public WidgetType.DynamicText getDynamicText() {

-        return dynamicText;

-    }

+	/**

+	 * Gets the value of the dynamicText property.

+	 * 

+	 * @return

+	 *         possible object is {@link WidgetType.DynamicText }

+	 * 

+	 */

+	public WidgetType.DynamicText getDynamicText() {

+		return dynamicText;

+	}

 

-    /**

-     * Sets the value of the dynamicText property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link WidgetType.DynamicText }

-     *     

-     */

-    public void setDynamicText(WidgetType.DynamicText value) {

-        this.dynamicText = value;

-    }

+	/**

+	 * Sets the value of the dynamicText property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link WidgetType.DynamicText }

+	 * 

+	 */

+	public void setDynamicText(WidgetType.DynamicText value) {

+		this.dynamicText = value;

+	}

 

-    /**

-     * Gets the value of the controlState property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link ControlStateType }

-     *     

-     */

-    public ControlStateType getControlState() {

-        return controlState;

-    }

+	/**

+	 * Gets the value of the controlState property.

+	 * 

+	 * @return

+	 *         possible object is {@link ControlStateType }

+	 * 

+	 */

+	public ControlStateType getControlState() {

+		return controlState;

+	}

 

-    /**

-     * Sets the value of the controlState property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link ControlStateType }

-     *     

-     */

-    public void setControlState(ControlStateType value) {

-        this.controlState = value;

-    }

+	/**

+	 * Sets the value of the controlState property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link ControlStateType }

+	 * 

+	 */

+	public void setControlState(ControlStateType value) {

+		this.controlState = value;

+	}

 

-    /**

-     * Gets the value of the type property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getType() {

-        if (type == null) {

-            return "text";

-        } else {

-            return type;

-        }

-    }

+	/**

+	 * Gets the value of the type property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getType() {

+		if (type == null) {

+			return "text";

+		} else {

+			return type;

+		}

+	}

 

-    /**

-     * Sets the value of the type property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setType(String value) {

-        this.type = value;

-    }

+	/**

+	 * Sets the value of the type property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setType(String value) {

+		this.type = value;

+	}

 

-    /**

-     * Gets the value of the typeId property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getTypeId() {

-        return typeId;

-    }

+	/**

+	 * Gets the value of the typeId property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getTypeId() {

+		return typeId;

+	}

 

-    /**

-     * Sets the value of the typeId property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setTypeId(String value) {

-        this.typeId = value;

-    }

+	/**

+	 * Sets the value of the typeId property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setTypeId(String value) {

+		this.typeId = value;

+	}

 

-    /**

-     * Gets the value of the buttonId property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getButtonId() {

-        return buttonId;

-    }

+	/**

+	 * Gets the value of the buttonId property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getButtonId() {

+		return buttonId;

+	}

 

-    /**

-     * Sets the value of the buttonId property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setButtonId(String value) {

-        this.buttonId = value;

-    }

+	/**

+	 * Sets the value of the buttonId property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setButtonId(String value) {

+		this.buttonId = value;

+	}

 

-    /**

-     * Gets the value of the title property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getTitle() {

-        return title;

-    }

+	/**

+	 * Gets the value of the title property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getTitle() {

+		return title;

+	}

 

-    /**

-     * Sets the value of the title property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setTitle(String value) {

-        this.title = value;

-    }

+	/**

+	 * Sets the value of the title property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setTitle(String value) {

+		this.title = value;

+	}

 

-    /**

-     * Gets the value of the style property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getStyle() {

-        return style;

-    }

+	/**

+	 * Gets the value of the style property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getStyle() {

+		return style;

+	}

 

-    /**

-     * Sets the value of the style property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setStyle(String value) {

-        this.style = value;

-    }

+	/**

+	 * Sets the value of the style property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setStyle(String value) {

+		this.style = value;

+	}

 

-    /**

-     * Gets the value of the readOnly property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link Boolean }

-     *     

-     */

-    public boolean isReadOnly() {

-        if (readOnly == null) {

-            return false;

-        } else {

-            return readOnly;

-        }

-    }

+	/**

+	 * Gets the value of the readOnly property.

+	 * 

+	 * @return

+	 *         possible object is {@link Boolean }

+	 * 

+	 */

+	public boolean isReadOnly() {

+		if (readOnly == null) {

+			return false;

+		} else {

+			return readOnly;

+		}

+	}

 

-    /**

-     * Sets the value of the readOnly property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link Boolean }

-     *     

-     */

-    public void setReadOnly(Boolean value) {

-        this.readOnly = value;

-    }

+	/**

+	 * Sets the value of the readOnly property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link Boolean }

+	 * 

+	 */

+	public void setReadOnly(Boolean value) {

+		this.readOnly = value;

+	}

 

-    /**

-     * Gets the value of the attribute property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getAttribute() {

-        return attribute;

-    }

+	/**

+	 * Gets the value of the attribute property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getAttribute() {

+		return attribute;

+	}

 

-    /**

-     * Sets the value of the attribute property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setAttribute(String value) {

-        this.attribute = value;

-    }

+	/**

+	 * Sets the value of the attribute property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setAttribute(String value) {

+		this.attribute = value;

+	}

 

-    /**

-     * Gets the value of the foreground property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getForeground() {

-        return foreground;

-    }

+	/**

+	 * Gets the value of the foreground property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getForeground() {

+		return foreground;

+	}

 

-    /**

-     * Sets the value of the foreground property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setForeground(String value) {

-        this.foreground = value;

-    }

+	/**

+	 * Sets the value of the foreground property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setForeground(String value) {

+		this.foreground = value;

+	}

 

-    /**

-     * Gets the value of the background property.

-     * 

-     * @return

-     *     possible object is

-     *     {@link String }

-     *     

-     */

-    public String getBackground() {

-        return background;

-    }

+	/**

+	 * Gets the value of the background property.

+	 * 

+	 * @return

+	 *         possible object is {@link String }

+	 * 

+	 */

+	public String getBackground() {

+		return background;

+	}

 

-    /**

-     * Sets the value of the background property.

-     * 

-     * @param value

-     *     allowed object is

-     *     {@link String }

-     *     

-     */

-    public void setBackground(String value) {

-        this.background = value;

-    }

+	/**

+	 * Sets the value of the background property.

+	 * 

+	 * @param value

+	 *            allowed object is {@link String }

+	 * 

+	 */

+	public void setBackground(String value) {

+		this.background = value;

+	}

 

+	/**

+	 * <p>

+	 * Java class for anonymous complex type.

+	 * 

+	 * <p>

+	 * The following schema fragment specifies the expected content contained within this class.

+	 * 

+	 * <pre>

+	 * &lt;complexType>

+	 *   &lt;complexContent>

+	 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+	 *       &lt;sequence>

+	 *         &lt;element name="arg" type="{http://eclipse.org/ptp/rm}arg-type" maxOccurs="unbounded"/>

+	 *       &lt;/sequence>

+	 *     &lt;/restriction>

+	 *   &lt;/complexContent>

+	 * &lt;/complexType>

+	 * </pre>

+	 * 

+	 * 

+	 */

+	@XmlAccessorType(XmlAccessType.FIELD)

+	@XmlType(name = "", propOrder = { "arg" })

+	public static class DynamicText {

 

-    /**

-     * <p>Java class for anonymous complex type.

-     * 

-     * <p>The following schema fragment specifies the expected content contained within this class.

-     * 

-     * <pre>

-     * &lt;complexType>

-     *   &lt;complexContent>

-     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

-     *       &lt;sequence>

-     *         &lt;element name="arg" type="{http://eclipse.org/ptp/rm}arg-type" maxOccurs="unbounded"/>

-     *       &lt;/sequence>

-     *     &lt;/restriction>

-     *   &lt;/complexContent>

-     * &lt;/complexType>

-     * </pre>

-     * 

-     * 

-     */

-    @XmlAccessorType(XmlAccessType.FIELD)

-    @XmlType(name = "", propOrder = {

-        "arg"

-    })

-    public static class DynamicText {

+		@XmlElement(required = true)

+		protected List<ArgType> arg;

 

-        @XmlElement(required = true)

-        protected List<ArgType> arg;

+		/**

+		 * Gets the value of the arg property.

+		 * 

+		 * <p>

+		 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+		 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the arg

+		 * property.

+		 * 

+		 * <p>

+		 * For example, to add a new item, do as follows:

+		 * 

+		 * <pre>

+		 * getArg().add(newItem);

+		 * </pre>

+		 * 

+		 * 

+		 * <p>

+		 * Objects of the following type(s) are allowed in the list {@link ArgType }

+		 * 

+		 * 

+		 */

+		public List<ArgType> getArg() {

+			if (arg == null) {

+				arg = new ArrayList<ArgType>();

+			}

+			return this.arg;

+		}

 

-        /**

-         * Gets the value of the arg property.

-         * 

-         * <p>

-         * This accessor method returns a reference to the live list,

-         * not a snapshot. Therefore any modification you make to the

-         * returned list will be present inside the JAXB object.

-         * This is why there is not a <CODE>set</CODE> method for the arg property.

-         * 

-         * <p>

-         * For example, to add a new item, do as follows:

-         * <pre>

-         *    getArg().add(newItem);

-         * </pre>

-         * 

-         * 

-         * <p>

-         * Objects of the following type(s) are allowed in the list

-         * {@link ArgType }

-         * 

-         * 

-         */

-        public List<ArgType> getArg() {

-            if (arg == null) {

-                arg = new ArrayList<ArgType>();

-            }

-            return this.arg;

-        }

-

-    }

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/WorkflowType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/WorkflowType.java
index e74fa58..7fb31f8 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/WorkflowType.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/WorkflowType.java
@@ -2,24 +2,25 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

-

 package org.eclipse.ptp.rm.jaxb.core.data;

 

 import java.util.ArrayList;

 import java.util.List;

+

 import javax.xml.bind.annotation.XmlAccessType;

 import javax.xml.bind.annotation.XmlAccessorType;

 import javax.xml.bind.annotation.XmlElement;

 import javax.xml.bind.annotation.XmlType;

 

-

 /**

- * <p>Java class for workflow-type complex type.

+ * <p>

+ * Java class for workflow-type complex type.

  * 

- * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * The following schema fragment specifies the expected content contained within this class.

  * 

  * <pre>

  * &lt;complexType name="workflow-type">

@@ -38,103 +39,96 @@
  * 

  */

 @XmlAccessorType(XmlAccessType.FIELD)

-@XmlType(name = "workflow-type", propOrder = {

-    "vardefs",

-    "managedFiles",

-    "step"

-})

+@XmlType(name = "workflow-type", propOrder = { "vardefs", "managedFiles", "step" })

 public class WorkflowType {

 

-    protected List<VardefsType> vardefs;

-    @XmlElement(name = "managed-files")

-    protected List<ManagedFilesType> managedFiles;

-    protected List<StepType> step;

+	protected List<VardefsType> vardefs;

+	@XmlElement(name = "managed-files")

+	protected List<ManagedFilesType> managedFiles;

+	protected List<StepType> step;

 

-    /**

-     * Gets the value of the vardefs property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the vardefs property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getVardefs().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link VardefsType }

-     * 

-     * 

-     */

-    public List<VardefsType> getVardefs() {

-        if (vardefs == null) {

-            vardefs = new ArrayList<VardefsType>();

-        }

-        return this.vardefs;

-    }

+	/**

+	 * Gets the value of the vardefs property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the vardefs

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getVardefs().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link VardefsType }

+	 * 

+	 * 

+	 */

+	public List<VardefsType> getVardefs() {

+		if (vardefs == null) {

+			vardefs = new ArrayList<VardefsType>();

+		}

+		return this.vardefs;

+	}

 

-    /**

-     * Gets the value of the managedFiles property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the managedFiles property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getManagedFiles().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link ManagedFilesType }

-     * 

-     * 

-     */

-    public List<ManagedFilesType> getManagedFiles() {

-        if (managedFiles == null) {

-            managedFiles = new ArrayList<ManagedFilesType>();

-        }

-        return this.managedFiles;

-    }

+	/**

+	 * Gets the value of the managedFiles property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the managedFiles

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getManagedFiles().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link ManagedFilesType }

+	 * 

+	 * 

+	 */

+	public List<ManagedFilesType> getManagedFiles() {

+		if (managedFiles == null) {

+			managedFiles = new ArrayList<ManagedFilesType>();

+		}

+		return this.managedFiles;

+	}

 

-    /**

-     * Gets the value of the step property.

-     * 

-     * <p>

-     * This accessor method returns a reference to the live list,

-     * not a snapshot. Therefore any modification you make to the

-     * returned list will be present inside the JAXB object.

-     * This is why there is not a <CODE>set</CODE> method for the step property.

-     * 

-     * <p>

-     * For example, to add a new item, do as follows:

-     * <pre>

-     *    getStep().add(newItem);

-     * </pre>

-     * 

-     * 

-     * <p>

-     * Objects of the following type(s) are allowed in the list

-     * {@link StepType }

-     * 

-     * 

-     */

-    public List<StepType> getStep() {

-        if (step == null) {

-            step = new ArrayList<StepType>();

-        }

-        return this.step;

-    }

+	/**

+	 * Gets the value of the step property.

+	 * 

+	 * <p>

+	 * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the

+	 * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the step

+	 * property.

+	 * 

+	 * <p>

+	 * For example, to add a new item, do as follows:

+	 * 

+	 * <pre>

+	 * getStep().add(newItem);

+	 * </pre>

+	 * 

+	 * 

+	 * <p>

+	 * Objects of the following type(s) are allowed in the list {@link StepType }

+	 * 

+	 * 

+	 */

+	public List<StepType> getStep() {

+		if (step == null) {

+			step = new ArrayList<StepType>();

+		}

+		return this.step;

+	}

 

 }

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/AbslayoutType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/AbslayoutType.java
new file mode 100644
index 0000000..560a558
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/AbslayoutType.java
@@ -0,0 +1,83 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlElement;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * 

+ * 				Describes a layout with absolute coordinates. Every

+ * 				component must be added by a comp-tag.

+ * 			

+ * 

+ * <p>Java class for abslayout_type complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="abslayout_type">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}layout_type">

+ *       &lt;sequence>

+ *         &lt;element name="comp" type="{http://eclipse.org/ptp/lml}component_type" maxOccurs="unbounded"/>

+ *       &lt;/sequence>

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "abslayout_type", propOrder = {

+    "comp"

+})

+public class AbslayoutType

+    extends LayoutType

+{

+

+    @XmlElement(required = true)

+    protected List<ComponentType> comp;

+

+    /**

+     * Gets the value of the comp property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the comp property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getComp().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link ComponentType }

+     * 

+     * 

+     */

+    public List<ComponentType> getComp() {

+        if (comp == null) {

+            comp = new ArrayList<ComponentType>();

+        }

+        return this.comp;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/AlignType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/AlignType.java
new file mode 100644
index 0000000..72aab41
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/AlignType.java
@@ -0,0 +1,51 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import javax.xml.bind.annotation.XmlEnum;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for align_type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * <pre>

+ * &lt;simpleType name="align_type">

+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">

+ *     &lt;enumeration value="WEST"/>

+ *     &lt;enumeration value="EAST"/>

+ *     &lt;enumeration value="NORTH"/>

+ *     &lt;enumeration value="SOUTH"/>

+ *     &lt;enumeration value="CENTER"/>

+ *   &lt;/restriction>

+ * &lt;/simpleType>

+ * </pre>

+ * 

+ */

+@XmlType(name = "align_type")

+@XmlEnum

+public enum AlignType {

+

+    WEST,

+    EAST,

+    NORTH,

+    SOUTH,

+    CENTER;

+

+    public String value() {

+        return name();

+    }

+

+    public static AlignType fromValue(String v) {

+        return valueOf(v);

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ChartlayoutType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ChartlayoutType.java
new file mode 100644
index 0000000..a368b37
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ChartlayoutType.java
@@ -0,0 +1,295 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.math.BigInteger;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlAttribute;

+import javax.xml.bind.annotation.XmlSchemaType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * 

+ * 				Definition of layout-tag for charts

+ * 			

+ * 

+ * <p>Java class for chartlayout_type complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="chartlayout_type">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}componentlayout_type">

+ *       &lt;attribute name="border" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger" default="0" />

+ *       &lt;attribute name="showlegend" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />

+ *       &lt;attribute name="backgroundcolor" type="{http://eclipse.org/ptp/lml}hexcolor_type" default="#FFF" />

+ *       &lt;attribute name="innerbackgroundcolor" type="{http://eclipse.org/ptp/lml}hexcolor_type" default="#AAA" />

+ *       &lt;attribute name="axescolor" type="{http://eclipse.org/ptp/lml}hexcolor_type" default="#555" />

+ *       &lt;attribute name="bordercolor" type="{http://eclipse.org/ptp/lml}hexcolor_type" default="#000" />

+ *       &lt;attribute name="gridcolor" type="{http://eclipse.org/ptp/lml}hexcolor_type" default="#555" />

+ *       &lt;attribute name="cutpaint" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "chartlayout_type")

+public class ChartlayoutType

+    extends ComponentlayoutType

+{

+

+    @XmlAttribute(name = "border")

+    @XmlSchemaType(name = "nonNegativeInteger")

+    protected BigInteger border;

+    @XmlAttribute(name = "showlegend")

+    protected Boolean showlegend;

+    @XmlAttribute(name = "backgroundcolor")

+    protected String backgroundcolor;

+    @XmlAttribute(name = "innerbackgroundcolor")

+    protected String innerbackgroundcolor;

+    @XmlAttribute(name = "axescolor")

+    protected String axescolor;

+    @XmlAttribute(name = "bordercolor")

+    protected String bordercolor;

+    @XmlAttribute(name = "gridcolor")

+    protected String gridcolor;

+    @XmlAttribute(name = "cutpaint")

+    protected Boolean cutpaint;

+

+    /**

+     * Gets the value of the border property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link BigInteger }

+     *     

+     */

+    public BigInteger getBorder() {

+        if (border == null) {

+            return new BigInteger("0");

+        } else {

+            return border;

+        }

+    }

+

+    /**

+     * Sets the value of the border property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link BigInteger }

+     *     

+     */

+    public void setBorder(BigInteger value) {

+        this.border = value;

+    }

+

+    /**

+     * Gets the value of the showlegend property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link Boolean }

+     *     

+     */

+    public boolean isShowlegend() {

+        if (showlegend == null) {

+            return true;

+        } else {

+            return showlegend;

+        }

+    }

+

+    /**

+     * Sets the value of the showlegend property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link Boolean }

+     *     

+     */

+    public void setShowlegend(Boolean value) {

+        this.showlegend = value;

+    }

+

+    /**

+     * Gets the value of the backgroundcolor property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getBackgroundcolor() {

+        if (backgroundcolor == null) {

+            return "#FFF";

+        } else {

+            return backgroundcolor;

+        }

+    }

+

+    /**

+     * Sets the value of the backgroundcolor property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setBackgroundcolor(String value) {

+        this.backgroundcolor = value;

+    }

+

+    /**

+     * Gets the value of the innerbackgroundcolor property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getInnerbackgroundcolor() {

+        if (innerbackgroundcolor == null) {

+            return "#AAA";

+        } else {

+            return innerbackgroundcolor;

+        }

+    }

+

+    /**

+     * Sets the value of the innerbackgroundcolor property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setInnerbackgroundcolor(String value) {

+        this.innerbackgroundcolor = value;

+    }

+

+    /**

+     * Gets the value of the axescolor property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getAxescolor() {

+        if (axescolor == null) {

+            return "#555";

+        } else {

+            return axescolor;

+        }

+    }

+

+    /**

+     * Sets the value of the axescolor property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setAxescolor(String value) {

+        this.axescolor = value;

+    }

+

+    /**

+     * Gets the value of the bordercolor property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getBordercolor() {

+        if (bordercolor == null) {

+            return "#000";

+        } else {

+            return bordercolor;

+        }

+    }

+

+    /**

+     * Sets the value of the bordercolor property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setBordercolor(String value) {

+        this.bordercolor = value;

+    }

+

+    /**

+     * Gets the value of the gridcolor property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getGridcolor() {

+        if (gridcolor == null) {

+            return "#555";

+        } else {

+            return gridcolor;

+        }

+    }

+

+    /**

+     * Sets the value of the gridcolor property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setGridcolor(String value) {

+        this.gridcolor = value;

+    }

+

+    /**

+     * Gets the value of the cutpaint property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link Boolean }

+     *     

+     */

+    public boolean isCutpaint() {

+        if (cutpaint == null) {

+            return true;

+        } else {

+            return cutpaint;

+        }

+    }

+

+    /**

+     * Sets the value of the cutpaint property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link Boolean }

+     *     

+     */

+    public void setCutpaint(Boolean value) {

+        this.cutpaint = value;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ColorconstantType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ColorconstantType.java
new file mode 100644
index 0000000..c4307e4
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ColorconstantType.java
@@ -0,0 +1,99 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlAttribute;

+import javax.xml.bind.annotation.XmlSchemaType;

+import javax.xml.bind.annotation.XmlType;

+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;

+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;

+

+

+/**

+ * Definition of a color name. Connects a name like "red" width a html-like color like "#F00"

+ * 

+ * <p>Java class for colorconstant_type complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="colorconstant_type">

+ *   &lt;complexContent>

+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+ *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}NCName" />

+ *       &lt;attribute name="color" use="required" type="{http://eclipse.org/ptp/lml}hexcolor_type" />

+ *     &lt;/restriction>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "colorconstant_type")

+public class ColorconstantType {

+

+    @XmlAttribute(name = "name", required = true)

+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)

+    @XmlSchemaType(name = "NCName")

+    protected String name;

+    @XmlAttribute(name = "color", required = true)

+    protected String color;

+

+    /**

+     * Gets the value of the name property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getName() {

+        return name;

+    }

+

+    /**

+     * Sets the value of the name property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setName(String value) {

+        this.name = value;

+    }

+

+    /**

+     * Gets the value of the color property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getColor() {

+        return color;

+    }

+

+    /**

+     * Sets the value of the color property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setColor(String value) {

+        this.color = value;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ColordefinitionType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ColordefinitionType.java
new file mode 100644
index 0000000..ad8b3ae
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ColordefinitionType.java
@@ -0,0 +1,78 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlElement;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * Collects a list of colorconstants.

+ * 

+ * <p>Java class for colordefinition_type complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="colordefinition_type">

+ *   &lt;complexContent>

+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+ *       &lt;sequence>

+ *         &lt;element name="colorname" type="{http://eclipse.org/ptp/lml}colorconstant_type" maxOccurs="unbounded" minOccurs="0"/>

+ *       &lt;/sequence>

+ *     &lt;/restriction>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "colordefinition_type", propOrder = {

+    "colorname"

+})

+public class ColordefinitionType {

+

+    @XmlElement(namespace = "http://eclipse.org/ptp/lml")

+    protected List<ColorconstantType> colorname;

+

+    /**

+     * Gets the value of the colorname property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the colorname property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getColorname().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link ColorconstantType }

+     * 

+     * 

+     */

+    public List<ColorconstantType> getColorname() {

+        if (colorname == null) {

+            colorname = new ArrayList<ColorconstantType>();

+        }

+        return this.colorname;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ColumnlayoutType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ColumnlayoutType.java
new file mode 100644
index 0000000..3586741
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ColumnlayoutType.java
@@ -0,0 +1,255 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.math.BigInteger;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlAttribute;

+import javax.xml.bind.annotation.XmlSchemaType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * 

+ * 				Layout-definitions for exactly one column of a table.

+ * 				Defines where to position the column, width and if this

+ * 				column is sorted

+ * 			

+ * 

+ * <p>Java class for columnlayout_type complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="columnlayout_type">

+ *   &lt;complexContent>

+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+ *       &lt;sequence>

+ *         &lt;element name="pattern" type="{http://eclipse.org/ptp/lml}pattern_type" minOccurs="0"/>

+ *       &lt;/sequence>

+ *       &lt;attribute name="cid" use="required" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" />

+ *       &lt;attribute name="pos" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger" />

+ *       &lt;attribute name="width">

+ *         &lt;simpleType>

+ *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}double">

+ *             &lt;minInclusive value="0"/>

+ *             &lt;maxInclusive value="1"/>

+ *           &lt;/restriction>

+ *         &lt;/simpleType>

+ *       &lt;/attribute>

+ *       &lt;attribute name="sorted" type="{http://eclipse.org/ptp/lml}columnsortedtype" default="false" />

+ *       &lt;attribute name="active" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />

+ *       &lt;attribute name="key" type="{http://www.w3.org/2001/XMLSchema}string" />

+ *     &lt;/restriction>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "columnlayout_type", propOrder = {

+    "pattern"

+})

+public class ColumnlayoutType {

+

+    protected PatternType pattern;

+    @XmlAttribute(name = "cid", required = true)

+    @XmlSchemaType(name = "positiveInteger")

+    protected BigInteger cid;

+    @XmlAttribute(name = "pos")

+    @XmlSchemaType(name = "nonNegativeInteger")

+    protected BigInteger pos;

+    @XmlAttribute(name = "width")

+    protected Double width;

+    @XmlAttribute(name = "sorted")

+    protected Columnsortedtype sorted;

+    @XmlAttribute(name = "active")

+    protected Boolean active;

+    @XmlAttribute(name = "key")

+    protected String key;

+

+    /**

+     * Gets the value of the pattern property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link PatternType }

+     *     

+     */

+    public PatternType getPattern() {

+        return pattern;

+    }

+

+    /**

+     * Sets the value of the pattern property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link PatternType }

+     *     

+     */

+    public void setPattern(PatternType value) {

+        this.pattern = value;

+    }

+

+    /**

+     * Gets the value of the cid property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link BigInteger }

+     *     

+     */

+    public BigInteger getCid() {

+        return cid;

+    }

+

+    /**

+     * Sets the value of the cid property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link BigInteger }

+     *     

+     */

+    public void setCid(BigInteger value) {

+        this.cid = value;

+    }

+

+    /**

+     * Gets the value of the pos property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link BigInteger }

+     *     

+     */

+    public BigInteger getPos() {

+        return pos;

+    }

+

+    /**

+     * Sets the value of the pos property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link BigInteger }

+     *     

+     */

+    public void setPos(BigInteger value) {

+        this.pos = value;

+    }

+

+    /**

+     * Gets the value of the width property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link Double }

+     *     

+     */

+    public Double getWidth() {

+        return width;

+    }

+

+    /**

+     * Sets the value of the width property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link Double }

+     *     

+     */

+    public void setWidth(Double value) {

+        this.width = value;

+    }

+

+    /**

+     * Gets the value of the sorted property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link Columnsortedtype }

+     *     

+     */

+    public Columnsortedtype getSorted() {

+        if (sorted == null) {

+            return Columnsortedtype.FALSE;

+        } else {

+            return sorted;

+        }

+    }

+

+    /**

+     * Sets the value of the sorted property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link Columnsortedtype }

+     *     

+     */

+    public void setSorted(Columnsortedtype value) {

+        this.sorted = value;

+    }

+

+    /**

+     * Gets the value of the active property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link Boolean }

+     *     

+     */

+    public boolean isActive() {

+        if (active == null) {

+            return true;

+        } else {

+            return active;

+        }

+    }

+

+    /**

+     * Sets the value of the active property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link Boolean }

+     *     

+     */

+    public void setActive(Boolean value) {

+        this.active = value;

+    }

+

+    /**

+     * Gets the value of the key property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getKey() {

+        return key;

+    }

+

+    /**

+     * Sets the value of the key property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setKey(String value) {

+        this.key = value;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Columnsortedtype.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Columnsortedtype.java
new file mode 100644
index 0000000..274bb67
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Columnsortedtype.java
@@ -0,0 +1,61 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import javax.xml.bind.annotation.XmlEnum;

+import javax.xml.bind.annotation.XmlEnumValue;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for columnsortedtype.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * <pre>

+ * &lt;simpleType name="columnsortedtype">

+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">

+ *     &lt;enumeration value="asc"/>

+ *     &lt;enumeration value="desc"/>

+ *     &lt;enumeration value="false"/>

+ *   &lt;/restriction>

+ * &lt;/simpleType>

+ * </pre>

+ * 

+ */

+@XmlType(name = "columnsortedtype")

+@XmlEnum

+public enum Columnsortedtype {

+

+    @XmlEnumValue("asc")

+    ASC("asc"),

+    @XmlEnumValue("desc")

+    DESC("desc"),

+    @XmlEnumValue("false")

+    FALSE("false");

+    private final String value;

+

+    Columnsortedtype(String v) {

+        value = v;

+    }

+

+    public String value() {

+        return value;

+    }

+

+    public static Columnsortedtype fromValue(String v) {

+        for (Columnsortedtype c: Columnsortedtype.values()) {

+            if (c.value.equals(v)) {

+                return c;

+            }

+        }

+        throw new IllegalArgumentException(v);

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/CommandType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/CommandType.java
new file mode 100644
index 0000000..78a84da
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/CommandType.java
@@ -0,0 +1,94 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlAttribute;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * Every command consists of a name and a path to this command.

+ * 

+ * <p>Java class for CommandType complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="CommandType">

+ *   &lt;complexContent>

+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+ *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />

+ *       &lt;attribute name="exec" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />

+ *     &lt;/restriction>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "CommandType")

+public class CommandType {

+

+    @XmlAttribute(name = "name", required = true)

+    protected String name;

+    @XmlAttribute(name = "exec", required = true)

+    protected String exec;

+

+    /**

+     * Gets the value of the name property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getName() {

+        return name;

+    }

+

+    /**

+     * Sets the value of the name property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setName(String value) {

+        this.name = value;

+    }

+

+    /**

+     * Gets the value of the exec property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getExec() {

+        return exec;

+    }

+

+    /**

+     * Sets the value of the exec property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setExec(String value) {

+        this.exec = value;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ComponentType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ComponentType.java
new file mode 100644
index 0000000..e0889ee
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ComponentType.java
@@ -0,0 +1,188 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.math.BigInteger;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlAttribute;

+import javax.xml.bind.annotation.XmlSchemaType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * Describes the absolute position of one graphical

+ * 				object

+ * 

+ * <p>Java class for component_type complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="component_type">

+ *   &lt;complexContent>

+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+ *       &lt;attribute name="gid" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />

+ *       &lt;attribute name="x" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />

+ *       &lt;attribute name="y" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />

+ *       &lt;attribute name="w" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger" default="100" />

+ *       &lt;attribute name="h" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger" default="100" />

+ *     &lt;/restriction>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "component_type")

+public class ComponentType {

+

+    @XmlAttribute(name = "gid", required = true)

+    protected String gid;

+    @XmlAttribute(name = "x", required = true)

+    protected BigInteger x;

+    @XmlAttribute(name = "y", required = true)

+    protected BigInteger y;

+    @XmlAttribute(name = "w")

+    @XmlSchemaType(name = "nonNegativeInteger")

+    protected BigInteger w;

+    @XmlAttribute(name = "h")

+    @XmlSchemaType(name = "nonNegativeInteger")

+    protected BigInteger h;

+

+    /**

+     * Gets the value of the gid property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getGid() {

+        return gid;

+    }

+

+    /**

+     * Sets the value of the gid property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setGid(String value) {

+        this.gid = value;

+    }

+

+    /**

+     * Gets the value of the x property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link BigInteger }

+     *     

+     */

+    public BigInteger getX() {

+        return x;

+    }

+

+    /**

+     * Sets the value of the x property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link BigInteger }

+     *     

+     */

+    public void setX(BigInteger value) {

+        this.x = value;

+    }

+

+    /**

+     * Gets the value of the y property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link BigInteger }

+     *     

+     */

+    public BigInteger getY() {

+        return y;

+    }

+

+    /**

+     * Sets the value of the y property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link BigInteger }

+     *     

+     */

+    public void setY(BigInteger value) {

+        this.y = value;

+    }

+

+    /**

+     * Gets the value of the w property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link BigInteger }

+     *     

+     */

+    public BigInteger getW() {

+        if (w == null) {

+            return new BigInteger("100");

+        } else {

+            return w;

+        }

+    }

+

+    /**

+     * Sets the value of the w property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link BigInteger }

+     *     

+     */

+    public void setW(BigInteger value) {

+        this.w = value;

+    }

+

+    /**

+     * Gets the value of the h property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link BigInteger }

+     *     

+     */

+    public BigInteger getH() {

+        if (h == null) {

+            return new BigInteger("100");

+        } else {

+            return h;

+        }

+    }

+

+    /**

+     * Sets the value of the h property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link BigInteger }

+     *     

+     */

+    public void setH(BigInteger value) {

+        this.h = value;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ComponentlayoutType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ComponentlayoutType.java
new file mode 100644
index 0000000..0ddca92
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ComponentlayoutType.java
@@ -0,0 +1,131 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlAttribute;

+import javax.xml.bind.annotation.XmlSeeAlso;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for componentlayout_type complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="componentlayout_type">

+ *   &lt;complexContent>

+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+ *       &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" />

+ *       &lt;attribute name="gid" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />

+ *       &lt;attribute name="active" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />

+ *     &lt;/restriction>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "componentlayout_type")

+@XmlSeeAlso({

+    ChartlayoutType.class,

+    UsagebarlayoutType.class,

+    InfoboxlayoutType.class,

+    NodedisplaylayoutType.class,

+    TablelayoutType.class

+})

+public class ComponentlayoutType {

+

+    @XmlAttribute(name = "id")

+    protected String id;

+    @XmlAttribute(name = "gid", required = true)

+    protected String gid;

+    @XmlAttribute(name = "active")

+    protected Boolean active;

+

+    /**

+     * Gets the value of the id property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getId() {

+        return id;

+    }

+

+    /**

+     * Sets the value of the id property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setId(String value) {

+        this.id = value;

+    }

+

+    /**

+     * Gets the value of the gid property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getGid() {

+        return gid;

+    }

+

+    /**

+     * Sets the value of the gid property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setGid(String value) {

+        this.gid = value;

+    }

+

+    /**

+     * Gets the value of the active property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link Boolean }

+     *     

+     */

+    public boolean isActive() {

+        if (active == null) {

+            return true;

+        } else {

+            return active;

+        }

+    }

+

+    /**

+     * Sets the value of the active property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link Boolean }

+     *     

+     */

+    public void setActive(Boolean value) {

+        this.active = value;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ContentType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ContentType.java
new file mode 100644
index 0000000..dccf805
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ContentType.java
@@ -0,0 +1,73 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import javax.xml.bind.annotation.XmlEnum;

+import javax.xml.bind.annotation.XmlEnumValue;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for content_type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * <p>

+ * <pre>

+ * &lt;simpleType name="content_type">

+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">

+ *     &lt;enumeration value="jobs"/>

+ *     &lt;enumeration value="nodes"/>

+ *     &lt;enumeration value="users"/>

+ *     &lt;enumeration value="groups"/>

+ *     &lt;enumeration value="classes"/>

+ *     &lt;enumeration value="queues"/>

+ *     &lt;enumeration value="other"/>

+ *   &lt;/restriction>

+ * &lt;/simpleType>

+ * </pre>

+ * 

+ */

+@XmlType(name = "content_type")

+@XmlEnum

+public enum ContentType {

+

+    @XmlEnumValue("jobs")

+    JOBS("jobs"),

+    @XmlEnumValue("nodes")

+    NODES("nodes"),

+    @XmlEnumValue("users")

+    USERS("users"),

+    @XmlEnumValue("groups")

+    GROUPS("groups"),

+    @XmlEnumValue("classes")

+    CLASSES("classes"),

+    @XmlEnumValue("queues")

+    QUEUES("queues"),

+    @XmlEnumValue("other")

+    OTHER("other");

+    private final String value;

+

+    ContentType(String v) {

+        value = v;

+    }

+

+    public String value() {

+        return value;

+    }

+

+    public static ContentType fromValue(String v) {

+        for (ContentType c: ContentType.values()) {

+            if (c.value.equals(v)) {

+                return c;

+            }

+        }

+        throw new IllegalArgumentException(v);

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/DriverType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/DriverType.java
new file mode 100644
index 0000000..c403868
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/DriverType.java
@@ -0,0 +1,107 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlAttribute;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * 

+ *     			Definition of driver-parameters for calling the lml-da

+ *     			with specific driver-information.

+ *     		

+ * 

+ * <p>Java class for DriverType complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="DriverType">

+ *   &lt;complexContent>

+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+ *       &lt;sequence>

+ *         &lt;element name="command" type="{http://eclipse.org/ptp/lml}CommandType" maxOccurs="unbounded" minOccurs="0"/>

+ *       &lt;/sequence>

+ *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />

+ *     &lt;/restriction>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "DriverType", propOrder = {

+    "command"

+})

+public class DriverType {

+

+    protected List<CommandType> command;

+    @XmlAttribute(name = "name", required = true)

+    protected String name;

+

+    /**

+     * Gets the value of the command property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the command property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getCommand().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link CommandType }

+     * 

+     * 

+     */

+    public List<CommandType> getCommand() {

+        if (command == null) {

+            command = new ArrayList<CommandType>();

+        }

+        return this.command;

+    }

+

+    /**

+     * Gets the value of the name property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getName() {

+        return name;

+    }

+

+    /**

+     * Sets the value of the name property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setName(String value) {

+        this.name = value;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ElementType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ElementType.java
new file mode 100644
index 0000000..240c283
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ElementType.java
@@ -0,0 +1,137 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.math.BigInteger;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlAttribute;

+import javax.xml.bind.annotation.XmlSchemaType;

+import javax.xml.bind.annotation.XmlSeeAlso;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * 

+ * 				Abstract element type for either scheme- or

+ * 				data-elements. This element is repeated (max-min+1)

+ * 				times, if step in the scheme-section is 1. max should be

+ * 				higher then min. If max is left out, max will be set to

+ * 				min (max=min). min="0", max="0" means there is only one

+ * 				element.

+ * 			

+ * 

+ * <p>Java class for element_type complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="element_type">

+ *   &lt;complexContent>

+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+ *       &lt;attribute name="min" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger" />

+ *       &lt;attribute name="max" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger" />

+ *       &lt;attribute name="list" type="{http://eclipse.org/ptp/lml}list_type" />

+ *     &lt;/restriction>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "element_type")

+@XmlSeeAlso({

+    SchemeElement.class,

+    Nodedisplayelement.class

+})

+public class ElementType {

+

+    @XmlAttribute(name = "min")

+    @XmlSchemaType(name = "nonNegativeInteger")

+    protected BigInteger min;

+    @XmlAttribute(name = "max")

+    @XmlSchemaType(name = "nonNegativeInteger")

+    protected BigInteger max;

+    @XmlAttribute(name = "list")

+    protected String list;

+

+    /**

+     * Gets the value of the min property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link BigInteger }

+     *     

+     */

+    public BigInteger getMin() {

+        return min;

+    }

+

+    /**

+     * Sets the value of the min property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link BigInteger }

+     *     

+     */

+    public void setMin(BigInteger value) {

+        this.min = value;

+    }

+

+    /**

+     * Gets the value of the max property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link BigInteger }

+     *     

+     */

+    public BigInteger getMax() {

+        return max;

+    }

+

+    /**

+     * Sets the value of the max property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link BigInteger }

+     *     

+     */

+    public void setMax(BigInteger value) {

+        this.max = value;

+    }

+

+    /**

+     * Gets the value of the list property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getList() {

+        return list;

+    }

+

+    /**

+     * Sets the value of the list property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setList(String value) {

+        this.list = value;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/InfoboxlayoutColtype.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/InfoboxlayoutColtype.java
new file mode 100644
index 0000000..22ac7fa
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/InfoboxlayoutColtype.java
@@ -0,0 +1,134 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlAttribute;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for infoboxlayout_coltype complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="infoboxlayout_coltype">

+ *   &lt;complexContent>

+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+ *       &lt;attribute name="pos" type="{http://eclipse.org/ptp/lml}integer01type" />

+ *       &lt;attribute name="width" default="0.5">

+ *         &lt;simpleType>

+ *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}double">

+ *             &lt;minInclusive value="0"/>

+ *             &lt;maxInclusive value="1"/>

+ *           &lt;/restriction>

+ *         &lt;/simpleType>

+ *       &lt;/attribute>

+ *       &lt;attribute name="sorted" type="{http://eclipse.org/ptp/lml}columnsortedtype" default="false" />

+ *     &lt;/restriction>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "infoboxlayout_coltype")

+public class InfoboxlayoutColtype {

+

+    @XmlAttribute(name = "pos")

+    protected Integer pos;

+    @XmlAttribute(name = "width")

+    protected Double width;

+    @XmlAttribute(name = "sorted")

+    protected Columnsortedtype sorted;

+

+    /**

+     * Gets the value of the pos property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link Integer }

+     *     

+     */

+    public Integer getPos() {

+        return pos;

+    }

+

+    /**

+     * Sets the value of the pos property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link Integer }

+     *     

+     */

+    public void setPos(Integer value) {

+        this.pos = value;

+    }

+

+    /**

+     * Gets the value of the width property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link Double }

+     *     

+     */

+    public double getWidth() {

+        if (width == null) {

+            return  0.5D;

+        } else {

+            return width;

+        }

+    }

+

+    /**

+     * Sets the value of the width property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link Double }

+     *     

+     */

+    public void setWidth(Double value) {

+        this.width = value;

+    }

+

+    /**

+     * Gets the value of the sorted property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link Columnsortedtype }

+     *     

+     */

+    public Columnsortedtype getSorted() {

+        if (sorted == null) {

+            return Columnsortedtype.FALSE;

+        } else {

+            return sorted;

+        }

+    }

+

+    /**

+     * Sets the value of the sorted property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link Columnsortedtype }

+     *     

+     */

+    public void setSorted(Columnsortedtype value) {

+        this.sorted = value;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/InfoboxlayoutType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/InfoboxlayoutType.java
new file mode 100644
index 0000000..2368c58
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/InfoboxlayoutType.java
@@ -0,0 +1,96 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for infoboxlayout_type complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="infoboxlayout_type">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}componentlayout_type">

+ *       &lt;sequence>

+ *         &lt;element name="typecol" type="{http://eclipse.org/ptp/lml}infoboxlayout_coltype" minOccurs="0"/>

+ *         &lt;element name="infocol" type="{http://eclipse.org/ptp/lml}infoboxlayout_coltype" minOccurs="0"/>

+ *       &lt;/sequence>

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "infoboxlayout_type", propOrder = {

+    "typecol",

+    "infocol"

+})

+public class InfoboxlayoutType

+    extends ComponentlayoutType

+{

+

+    protected InfoboxlayoutColtype typecol;

+    protected InfoboxlayoutColtype infocol;

+

+    /**

+     * Gets the value of the typecol property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link InfoboxlayoutColtype }

+     *     

+     */

+    public InfoboxlayoutColtype getTypecol() {

+        return typecol;

+    }

+

+    /**

+     * Sets the value of the typecol property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link InfoboxlayoutColtype }

+     *     

+     */

+    public void setTypecol(InfoboxlayoutColtype value) {

+        this.typecol = value;

+    }

+

+    /**

+     * Gets the value of the infocol property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link InfoboxlayoutColtype }

+     *     

+     */

+    public InfoboxlayoutColtype getInfocol() {

+        return infocol;

+    }

+

+    /**

+     * Sets the value of the infocol property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link InfoboxlayoutColtype }

+     *     

+     */

+    public void setInfocol(InfoboxlayoutColtype value) {

+        this.infocol = value;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/LayoutRequestType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/LayoutRequestType.java
new file mode 100644
index 0000000..a7089dd
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/LayoutRequestType.java
@@ -0,0 +1,102 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlAttribute;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * Contains information about handling layouts on the server side. For example an LML-client could wish to save the layout on the server-side. These parameters are listed within this tag.

+ * 

+ * <p>Java class for LayoutRequestType complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="LayoutRequestType">

+ *   &lt;complexContent>

+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+ *       &lt;attribute name="saveLayout" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />

+ *       &lt;attribute name="getDefaultData" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />

+ *     &lt;/restriction>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "LayoutRequestType")

+public class LayoutRequestType {

+

+    @XmlAttribute(name = "saveLayout")

+    protected Boolean saveLayout;

+    @XmlAttribute(name = "getDefaultData")

+    protected Boolean getDefaultData;

+

+    /**

+     * Gets the value of the saveLayout property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link Boolean }

+     *     

+     */

+    public boolean isSaveLayout() {

+        if (saveLayout == null) {

+            return false;

+        } else {

+            return saveLayout;

+        }

+    }

+

+    /**

+     * Sets the value of the saveLayout property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link Boolean }

+     *     

+     */

+    public void setSaveLayout(Boolean value) {

+        this.saveLayout = value;

+    }

+

+    /**

+     * Gets the value of the getDefaultData property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link Boolean }

+     *     

+     */

+    public boolean isGetDefaultData() {

+        if (getDefaultData == null) {

+            return false;

+        } else {

+            return getDefaultData;

+        }

+    }

+

+    /**

+     * Sets the value of the getDefaultData property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link Boolean }

+     *     

+     */

+    public void setGetDefaultData(Boolean value) {

+        this.getDefaultData = value;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/LayoutRoot.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/LayoutRoot.java
new file mode 100644
index 0000000..b7f1d39
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/LayoutRoot.java
@@ -0,0 +1,158 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.JAXBElement;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlAttribute;

+import javax.xml.bind.annotation.XmlElementRef;

+import javax.xml.bind.annotation.XmlElementRefs;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for layout_root complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="layout_root">

+ *   &lt;complexContent>

+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+ *       &lt;sequence>

+ *         &lt;element name="request" type="{http://eclipse.org/ptp/lml}RequestType" minOccurs="0"/>

+ *         &lt;sequence maxOccurs="unbounded" minOccurs="0">

+ *           &lt;element name="textlayout" type="{http://eclipse.org/ptp/lml}infoboxlayout_type" minOccurs="0"/>

+ *           &lt;element name="infoboxlayout" type="{http://eclipse.org/ptp/lml}infoboxlayout_type" minOccurs="0"/>

+ *           &lt;element name="tablelayout" type="{http://eclipse.org/ptp/lml}tablelayout_type" minOccurs="0"/>

+ *           &lt;element name="chartlayout" type="{http://eclipse.org/ptp/lml}chartlayout_type" minOccurs="0"/>

+ *           &lt;element name="usagebarlayout" type="{http://eclipse.org/ptp/lml}usagebarlayout_type" minOccurs="0"/>

+ *           &lt;element name="nodedisplaylayout" type="{http://eclipse.org/ptp/lml}nodedisplaylayout_type" minOccurs="0"/>

+ *           &lt;element name="abslayout" type="{http://eclipse.org/ptp/lml}abslayout_type" minOccurs="0"/>

+ *           &lt;element name="splitlayout" type="{http://eclipse.org/ptp/lml}splitlayout_type" minOccurs="0"/>

+ *         &lt;/sequence>

+ *       &lt;/sequence>

+ *       &lt;attribute name="version" type="{http://www.w3.org/2001/XMLSchema}string" />

+ *     &lt;/restriction>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "layout_root", propOrder = {

+    "request",

+    "textlayoutAndInfoboxlayoutAndTablelayout"

+})

+public class LayoutRoot {

+

+    protected RequestType request;

+    @XmlElementRefs({

+        @XmlElementRef(name = "splitlayout", type = JAXBElement.class),

+        @XmlElementRef(name = "nodedisplaylayout", type = JAXBElement.class),

+        @XmlElementRef(name = "tablelayout", type = JAXBElement.class),

+        @XmlElementRef(name = "infoboxlayout", type = JAXBElement.class),

+        @XmlElementRef(name = "chartlayout", type = JAXBElement.class),

+        @XmlElementRef(name = "abslayout", type = JAXBElement.class),

+        @XmlElementRef(name = "textlayout", type = JAXBElement.class),

+        @XmlElementRef(name = "usagebarlayout", type = JAXBElement.class)

+    })

+    protected List<JAXBElement<?>> textlayoutAndInfoboxlayoutAndTablelayout;

+    @XmlAttribute(name = "version")

+    protected String version;

+

+    /**

+     * Gets the value of the request property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link RequestType }

+     *     

+     */

+    public RequestType getRequest() {

+        return request;

+    }

+

+    /**

+     * Sets the value of the request property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link RequestType }

+     *     

+     */

+    public void setRequest(RequestType value) {

+        this.request = value;

+    }

+

+    /**

+     * Gets the value of the textlayoutAndInfoboxlayoutAndTablelayout property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the textlayoutAndInfoboxlayoutAndTablelayout property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getTextlayoutAndInfoboxlayoutAndTablelayout().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link JAXBElement }{@code <}{@link SplitlayoutType }{@code >}

+     * {@link JAXBElement }{@code <}{@link NodedisplaylayoutType }{@code >}

+     * {@link JAXBElement }{@code <}{@link TablelayoutType }{@code >}

+     * {@link JAXBElement }{@code <}{@link InfoboxlayoutType }{@code >}

+     * {@link JAXBElement }{@code <}{@link ChartlayoutType }{@code >}

+     * {@link JAXBElement }{@code <}{@link InfoboxlayoutType }{@code >}

+     * {@link JAXBElement }{@code <}{@link AbslayoutType }{@code >}

+     * {@link JAXBElement }{@code <}{@link UsagebarlayoutType }{@code >}

+     * 

+     * 

+     */

+    public List<JAXBElement<?>> getTextlayoutAndInfoboxlayoutAndTablelayout() {

+        if (textlayoutAndInfoboxlayoutAndTablelayout == null) {

+            textlayoutAndInfoboxlayoutAndTablelayout = new ArrayList<JAXBElement<?>>();

+        }

+        return this.textlayoutAndInfoboxlayoutAndTablelayout;

+    }

+

+    /**

+     * Gets the value of the version property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getVersion() {

+        return version;

+    }

+

+    /**

+     * Sets the value of the version property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setVersion(String value) {

+        this.version = value;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/LayoutType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/LayoutType.java
new file mode 100644
index 0000000..f8799d9
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/LayoutType.java
@@ -0,0 +1,73 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlAttribute;

+import javax.xml.bind.annotation.XmlSeeAlso;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * All layout-types should extend this type

+ * 			

+ * 

+ * <p>Java class for layout_type complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="layout_type">

+ *   &lt;complexContent>

+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+ *       &lt;attribute name="id" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />

+ *     &lt;/restriction>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "layout_type")

+@XmlSeeAlso({

+    SplitlayoutType.class,

+    AbslayoutType.class

+})

+public class LayoutType {

+

+    @XmlAttribute(name = "id", required = true)

+    protected String id;

+

+    /**

+     * Gets the value of the id property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getId() {

+        return id;

+    }

+

+    /**

+     * Sets the value of the id property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setId(String value) {

+        this.id = value;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement.java
new file mode 100644
index 0000000..ef57e9c
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement.java
@@ -0,0 +1,627 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.math.BigInteger;

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlAttribute;

+import javax.xml.bind.annotation.XmlSchemaType;

+import javax.xml.bind.annotation.XmlSeeAlso;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * 

+ * 				Contains all attributes that are equal at all levels

+ * 			

+ * 

+ * <p>Java class for nodedisplayelement complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="nodedisplayelement">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}element_type">

+ *       &lt;sequence>

+ *         &lt;element name="img" type="{http://eclipse.org/ptp/lml}picture_type" maxOccurs="unbounded" minOccurs="0"/>

+ *       &lt;/sequence>

+ *       &lt;attribute name="rows" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger" default="0" />

+ *       &lt;attribute name="cols" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger" default="8" />

+ *       &lt;attribute name="hgap" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger" default="1" />

+ *       &lt;attribute name="vgap" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger" default="1" />

+ *       &lt;attribute name="fontsize" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger" default="10" />

+ *       &lt;attribute name="border" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger" default="1" />

+ *       &lt;attribute name="fontfamily" type="{http://www.w3.org/2001/XMLSchema}string" default="Monospaced" />

+ *       &lt;attribute name="showtitle" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />

+ *       &lt;attribute name="titlebackground" type="{http://eclipse.org/ptp/lml}hexcolor_type" default="#EFEFEF" />

+ *       &lt;attribute name="background" type="{http://eclipse.org/ptp/lml}hexcolor_type" default="#FFF" />

+ *       &lt;attribute name="maxlevel" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger" />

+ *       &lt;attribute name="mouseborder" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger" default="2" />

+ *       &lt;attribute name="transparent" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />

+ *       &lt;attribute name="bordercolor" type="{http://eclipse.org/ptp/lml}hexcolor_type" default="#000" />

+ *       &lt;attribute name="showfulltitle" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />

+ *       &lt;attribute name="highestrowfirst" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />

+ *       &lt;attribute name="highestcolfirst" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "nodedisplayelement", propOrder = {

+    "img"

+})

+@XmlSeeAlso({

+    Nodedisplayelement2 .class,

+    Nodedisplayelement3 .class,

+    Nodedisplayelement0 .class,

+    Nodedisplayelement1 .class,

+    Nodedisplayelement8 .class,

+    Nodedisplayelement9 .class,

+    Nodedisplayelement6 .class,

+    Nodedisplayelement7 .class,

+    Nodedisplayelement4 .class,

+    Nodedisplayelement5 .class

+})

+public class Nodedisplayelement

+    extends ElementType

+{

+

+    protected List<PictureType> img;

+    @XmlAttribute(name = "rows")

+    @XmlSchemaType(name = "nonNegativeInteger")

+    protected BigInteger rows;

+    @XmlAttribute(name = "cols")

+    @XmlSchemaType(name = "nonNegativeInteger")

+    protected BigInteger cols;

+    @XmlAttribute(name = "hgap")

+    @XmlSchemaType(name = "nonNegativeInteger")

+    protected BigInteger hgap;

+    @XmlAttribute(name = "vgap")

+    @XmlSchemaType(name = "nonNegativeInteger")

+    protected BigInteger vgap;

+    @XmlAttribute(name = "fontsize")

+    @XmlSchemaType(name = "nonNegativeInteger")

+    protected BigInteger fontsize;

+    @XmlAttribute(name = "border")

+    @XmlSchemaType(name = "nonNegativeInteger")

+    protected BigInteger border;

+    @XmlAttribute(name = "fontfamily")

+    protected String fontfamily;

+    @XmlAttribute(name = "showtitle")

+    protected Boolean showtitle;

+    @XmlAttribute(name = "titlebackground")

+    protected String titlebackground;

+    @XmlAttribute(name = "background")

+    protected String background;

+    @XmlAttribute(name = "maxlevel")

+    @XmlSchemaType(name = "nonNegativeInteger")

+    protected BigInteger maxlevel;

+    @XmlAttribute(name = "mouseborder")

+    @XmlSchemaType(name = "nonNegativeInteger")

+    protected BigInteger mouseborder;

+    @XmlAttribute(name = "transparent")

+    protected Boolean transparent;

+    @XmlAttribute(name = "bordercolor")

+    protected String bordercolor;

+    @XmlAttribute(name = "showfulltitle")

+    protected Boolean showfulltitle;

+    @XmlAttribute(name = "highestrowfirst")

+    protected Boolean highestrowfirst;

+    @XmlAttribute(name = "highestcolfirst")

+    protected Boolean highestcolfirst;

+

+    /**

+     * Gets the value of the img property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the img property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getImg().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link PictureType }

+     * 

+     * 

+     */

+    public List<PictureType> getImg() {

+        if (img == null) {

+            img = new ArrayList<PictureType>();

+        }

+        return this.img;

+    }

+

+    /**

+     * Gets the value of the rows property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link BigInteger }

+     *     

+     */

+    public BigInteger getRows() {

+        if (rows == null) {

+            return new BigInteger("0");

+        } else {

+            return rows;

+        }

+    }

+

+    /**

+     * Sets the value of the rows property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link BigInteger }

+     *     

+     */

+    public void setRows(BigInteger value) {

+        this.rows = value;

+    }

+

+    /**

+     * Gets the value of the cols property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link BigInteger }

+     *     

+     */

+    public BigInteger getCols() {

+        if (cols == null) {

+            return new BigInteger("8");

+        } else {

+            return cols;

+        }

+    }

+

+    /**

+     * Sets the value of the cols property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link BigInteger }

+     *     

+     */

+    public void setCols(BigInteger value) {

+        this.cols = value;

+    }

+

+    /**

+     * Gets the value of the hgap property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link BigInteger }

+     *     

+     */

+    public BigInteger getHgap() {

+        if (hgap == null) {

+            return new BigInteger("1");

+        } else {

+            return hgap;

+        }

+    }

+

+    /**

+     * Sets the value of the hgap property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link BigInteger }

+     *     

+     */

+    public void setHgap(BigInteger value) {

+        this.hgap = value;

+    }

+

+    /**

+     * Gets the value of the vgap property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link BigInteger }

+     *     

+     */

+    public BigInteger getVgap() {

+        if (vgap == null) {

+            return new BigInteger("1");

+        } else {

+            return vgap;

+        }

+    }

+

+    /**

+     * Sets the value of the vgap property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link BigInteger }

+     *     

+     */

+    public void setVgap(BigInteger value) {

+        this.vgap = value;

+    }

+

+    /**

+     * Gets the value of the fontsize property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link BigInteger }

+     *     

+     */

+    public BigInteger getFontsize() {

+        if (fontsize == null) {

+            return new BigInteger("10");

+        } else {

+            return fontsize;

+        }

+    }

+

+    /**

+     * Sets the value of the fontsize property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link BigInteger }

+     *     

+     */

+    public void setFontsize(BigInteger value) {

+        this.fontsize = value;

+    }

+

+    /**

+     * Gets the value of the border property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link BigInteger }

+     *     

+     */

+    public BigInteger getBorder() {

+        if (border == null) {

+            return new BigInteger("1");

+        } else {

+            return border;

+        }

+    }

+

+    /**

+     * Sets the value of the border property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link BigInteger }

+     *     

+     */

+    public void setBorder(BigInteger value) {

+        this.border = value;

+    }

+

+    /**

+     * Gets the value of the fontfamily property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getFontfamily() {

+        if (fontfamily == null) {

+            return "Monospaced";

+        } else {

+            return fontfamily;

+        }

+    }

+

+    /**

+     * Sets the value of the fontfamily property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setFontfamily(String value) {

+        this.fontfamily = value;

+    }

+

+    /**

+     * Gets the value of the showtitle property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link Boolean }

+     *     

+     */

+    public boolean isShowtitle() {

+        if (showtitle == null) {

+            return false;

+        } else {

+            return showtitle;

+        }

+    }

+

+    /**

+     * Sets the value of the showtitle property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link Boolean }

+     *     

+     */

+    public void setShowtitle(Boolean value) {

+        this.showtitle = value;

+    }

+

+    /**

+     * Gets the value of the titlebackground property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getTitlebackground() {

+        if (titlebackground == null) {

+            return "#EFEFEF";

+        } else {

+            return titlebackground;

+        }

+    }

+

+    /**

+     * Sets the value of the titlebackground property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setTitlebackground(String value) {

+        this.titlebackground = value;

+    }

+

+    /**

+     * Gets the value of the background property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getBackground() {

+        if (background == null) {

+            return "#FFF";

+        } else {

+            return background;

+        }

+    }

+

+    /**

+     * Sets the value of the background property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setBackground(String value) {

+        this.background = value;

+    }

+

+    /**

+     * Gets the value of the maxlevel property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link BigInteger }

+     *     

+     */

+    public BigInteger getMaxlevel() {

+        return maxlevel;

+    }

+

+    /**

+     * Sets the value of the maxlevel property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link BigInteger }

+     *     

+     */

+    public void setMaxlevel(BigInteger value) {

+        this.maxlevel = value;

+    }

+

+    /**

+     * Gets the value of the mouseborder property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link BigInteger }

+     *     

+     */

+    public BigInteger getMouseborder() {

+        if (mouseborder == null) {

+            return new BigInteger("2");

+        } else {

+            return mouseborder;

+        }

+    }

+

+    /**

+     * Sets the value of the mouseborder property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link BigInteger }

+     *     

+     */

+    public void setMouseborder(BigInteger value) {

+        this.mouseborder = value;

+    }

+

+    /**

+     * Gets the value of the transparent property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link Boolean }

+     *     

+     */

+    public boolean isTransparent() {

+        if (transparent == null) {

+            return true;

+        } else {

+            return transparent;

+        }

+    }

+

+    /**

+     * Sets the value of the transparent property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link Boolean }

+     *     

+     */

+    public void setTransparent(Boolean value) {

+        this.transparent = value;

+    }

+

+    /**

+     * Gets the value of the bordercolor property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getBordercolor() {

+        if (bordercolor == null) {

+            return "#000";

+        } else {

+            return bordercolor;

+        }

+    }

+

+    /**

+     * Sets the value of the bordercolor property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setBordercolor(String value) {

+        this.bordercolor = value;

+    }

+

+    /**

+     * Gets the value of the showfulltitle property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link Boolean }

+     *     

+     */

+    public boolean isShowfulltitle() {

+        if (showfulltitle == null) {

+            return true;

+        } else {

+            return showfulltitle;

+        }

+    }

+

+    /**

+     * Sets the value of the showfulltitle property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link Boolean }

+     *     

+     */

+    public void setShowfulltitle(Boolean value) {

+        this.showfulltitle = value;

+    }

+

+    /**

+     * Gets the value of the highestrowfirst property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link Boolean }

+     *     

+     */

+    public boolean isHighestrowfirst() {

+        if (highestrowfirst == null) {

+            return false;

+        } else {

+            return highestrowfirst;

+        }

+    }

+

+    /**

+     * Sets the value of the highestrowfirst property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link Boolean }

+     *     

+     */

+    public void setHighestrowfirst(Boolean value) {

+        this.highestrowfirst = value;

+    }

+

+    /**

+     * Gets the value of the highestcolfirst property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link Boolean }

+     *     

+     */

+    public boolean isHighestcolfirst() {

+        if (highestcolfirst == null) {

+            return false;

+        } else {

+            return highestcolfirst;

+        }

+    }

+

+    /**

+     * Sets the value of the highestcolfirst property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link Boolean }

+     *     

+     */

+    public void setHighestcolfirst(Boolean value) {

+        this.highestcolfirst = value;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement0.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement0.java
new file mode 100644
index 0000000..df004f6
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement0.java
@@ -0,0 +1,76 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for nodedisplayelement0 complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="nodedisplayelement0">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}nodedisplayelement">

+ *       &lt;sequence>

+ *         &lt;element name="el1" type="{http://eclipse.org/ptp/lml}nodedisplayelement1" maxOccurs="unbounded" minOccurs="0"/>

+ *       &lt;/sequence>

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "nodedisplayelement0", propOrder = {

+    "el1"

+})

+public class Nodedisplayelement0

+    extends Nodedisplayelement

+{

+

+    protected List<Nodedisplayelement1> el1;

+

+    /**

+     * Gets the value of the el1 property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the el1 property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getEl1().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link Nodedisplayelement1 }

+     * 

+     * 

+     */

+    public List<Nodedisplayelement1> getEl1() {

+        if (el1 == null) {

+            el1 = new ArrayList<Nodedisplayelement1>();

+        }

+        return this.el1;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement1.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement1.java
new file mode 100644
index 0000000..32b2905
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement1.java
@@ -0,0 +1,76 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for nodedisplayelement1 complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="nodedisplayelement1">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}nodedisplayelement">

+ *       &lt;sequence>

+ *         &lt;element name="el2" type="{http://eclipse.org/ptp/lml}nodedisplayelement2" maxOccurs="unbounded" minOccurs="0"/>

+ *       &lt;/sequence>

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "nodedisplayelement1", propOrder = {

+    "el2"

+})

+public class Nodedisplayelement1

+    extends Nodedisplayelement

+{

+

+    protected List<Nodedisplayelement2> el2;

+

+    /**

+     * Gets the value of the el2 property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the el2 property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getEl2().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link Nodedisplayelement2 }

+     * 

+     * 

+     */

+    public List<Nodedisplayelement2> getEl2() {

+        if (el2 == null) {

+            el2 = new ArrayList<Nodedisplayelement2>();

+        }

+        return this.el2;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement2.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement2.java
new file mode 100644
index 0000000..d1fe78d
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement2.java
@@ -0,0 +1,76 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for nodedisplayelement2 complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="nodedisplayelement2">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}nodedisplayelement">

+ *       &lt;sequence>

+ *         &lt;element name="el3" type="{http://eclipse.org/ptp/lml}nodedisplayelement3" maxOccurs="unbounded" minOccurs="0"/>

+ *       &lt;/sequence>

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "nodedisplayelement2", propOrder = {

+    "el3"

+})

+public class Nodedisplayelement2

+    extends Nodedisplayelement

+{

+

+    protected List<Nodedisplayelement3> el3;

+

+    /**

+     * Gets the value of the el3 property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the el3 property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getEl3().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link Nodedisplayelement3 }

+     * 

+     * 

+     */

+    public List<Nodedisplayelement3> getEl3() {

+        if (el3 == null) {

+            el3 = new ArrayList<Nodedisplayelement3>();

+        }

+        return this.el3;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement3.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement3.java
new file mode 100644
index 0000000..884e7a0
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement3.java
@@ -0,0 +1,76 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for nodedisplayelement3 complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="nodedisplayelement3">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}nodedisplayelement">

+ *       &lt;sequence>

+ *         &lt;element name="el4" type="{http://eclipse.org/ptp/lml}nodedisplayelement4" maxOccurs="unbounded" minOccurs="0"/>

+ *       &lt;/sequence>

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "nodedisplayelement3", propOrder = {

+    "el4"

+})

+public class Nodedisplayelement3

+    extends Nodedisplayelement

+{

+

+    protected List<Nodedisplayelement4> el4;

+

+    /**

+     * Gets the value of the el4 property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the el4 property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getEl4().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link Nodedisplayelement4 }

+     * 

+     * 

+     */

+    public List<Nodedisplayelement4> getEl4() {

+        if (el4 == null) {

+            el4 = new ArrayList<Nodedisplayelement4>();

+        }

+        return this.el4;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement4.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement4.java
new file mode 100644
index 0000000..4eeac1b
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement4.java
@@ -0,0 +1,76 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for nodedisplayelement4 complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="nodedisplayelement4">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}nodedisplayelement">

+ *       &lt;sequence>

+ *         &lt;element name="el5" type="{http://eclipse.org/ptp/lml}nodedisplayelement5" maxOccurs="unbounded" minOccurs="0"/>

+ *       &lt;/sequence>

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "nodedisplayelement4", propOrder = {

+    "el5"

+})

+public class Nodedisplayelement4

+    extends Nodedisplayelement

+{

+

+    protected List<Nodedisplayelement5> el5;

+

+    /**

+     * Gets the value of the el5 property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the el5 property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getEl5().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link Nodedisplayelement5 }

+     * 

+     * 

+     */

+    public List<Nodedisplayelement5> getEl5() {

+        if (el5 == null) {

+            el5 = new ArrayList<Nodedisplayelement5>();

+        }

+        return this.el5;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement5.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement5.java
new file mode 100644
index 0000000..ee77f0e
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement5.java
@@ -0,0 +1,76 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for nodedisplayelement5 complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="nodedisplayelement5">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}nodedisplayelement">

+ *       &lt;sequence>

+ *         &lt;element name="el6" type="{http://eclipse.org/ptp/lml}nodedisplayelement6" maxOccurs="unbounded" minOccurs="0"/>

+ *       &lt;/sequence>

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "nodedisplayelement5", propOrder = {

+    "el6"

+})

+public class Nodedisplayelement5

+    extends Nodedisplayelement

+{

+

+    protected List<Nodedisplayelement6> el6;

+

+    /**

+     * Gets the value of the el6 property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the el6 property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getEl6().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link Nodedisplayelement6 }

+     * 

+     * 

+     */

+    public List<Nodedisplayelement6> getEl6() {

+        if (el6 == null) {

+            el6 = new ArrayList<Nodedisplayelement6>();

+        }

+        return this.el6;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement6.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement6.java
new file mode 100644
index 0000000..a5ace04
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement6.java
@@ -0,0 +1,76 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for nodedisplayelement6 complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="nodedisplayelement6">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}nodedisplayelement">

+ *       &lt;sequence>

+ *         &lt;element name="el7" type="{http://eclipse.org/ptp/lml}nodedisplayelement7" maxOccurs="unbounded" minOccurs="0"/>

+ *       &lt;/sequence>

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "nodedisplayelement6", propOrder = {

+    "el7"

+})

+public class Nodedisplayelement6

+    extends Nodedisplayelement

+{

+

+    protected List<Nodedisplayelement7> el7;

+

+    /**

+     * Gets the value of the el7 property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the el7 property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getEl7().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link Nodedisplayelement7 }

+     * 

+     * 

+     */

+    public List<Nodedisplayelement7> getEl7() {

+        if (el7 == null) {

+            el7 = new ArrayList<Nodedisplayelement7>();

+        }

+        return this.el7;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement7.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement7.java
new file mode 100644
index 0000000..07359a4
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement7.java
@@ -0,0 +1,76 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for nodedisplayelement7 complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="nodedisplayelement7">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}nodedisplayelement">

+ *       &lt;sequence>

+ *         &lt;element name="el8" type="{http://eclipse.org/ptp/lml}nodedisplayelement8" maxOccurs="unbounded" minOccurs="0"/>

+ *       &lt;/sequence>

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "nodedisplayelement7", propOrder = {

+    "el8"

+})

+public class Nodedisplayelement7

+    extends Nodedisplayelement

+{

+

+    protected List<Nodedisplayelement8> el8;

+

+    /**

+     * Gets the value of the el8 property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the el8 property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getEl8().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link Nodedisplayelement8 }

+     * 

+     * 

+     */

+    public List<Nodedisplayelement8> getEl8() {

+        if (el8 == null) {

+            el8 = new ArrayList<Nodedisplayelement8>();

+        }

+        return this.el8;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement8.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement8.java
new file mode 100644
index 0000000..0a00e87
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement8.java
@@ -0,0 +1,76 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for nodedisplayelement8 complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="nodedisplayelement8">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}nodedisplayelement">

+ *       &lt;sequence>

+ *         &lt;element name="el9" type="{http://eclipse.org/ptp/lml}nodedisplayelement9" maxOccurs="unbounded" minOccurs="0"/>

+ *       &lt;/sequence>

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "nodedisplayelement8", propOrder = {

+    "el9"

+})

+public class Nodedisplayelement8

+    extends Nodedisplayelement

+{

+

+    protected List<Nodedisplayelement9> el9;

+

+    /**

+     * Gets the value of the el9 property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the el9 property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getEl9().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link Nodedisplayelement9 }

+     * 

+     * 

+     */

+    public List<Nodedisplayelement9> getEl9() {

+        if (el9 == null) {

+            el9 = new ArrayList<Nodedisplayelement9>();

+        }

+        return this.el9;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement9.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement9.java
new file mode 100644
index 0000000..6a91abe
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/Nodedisplayelement9.java
@@ -0,0 +1,76 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for nodedisplayelement9 complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="nodedisplayelement9">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}nodedisplayelement">

+ *       &lt;sequence>

+ *         &lt;element name="el10" type="{http://eclipse.org/ptp/lml}nodedisplayelement" maxOccurs="unbounded" minOccurs="0"/>

+ *       &lt;/sequence>

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "nodedisplayelement9", propOrder = {

+    "el10"

+})

+public class Nodedisplayelement9

+    extends Nodedisplayelement

+{

+

+    protected List<Nodedisplayelement> el10;

+

+    /**

+     * Gets the value of the el10 property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the el10 property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getEl10().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link Nodedisplayelement }

+     * 

+     * 

+     */

+    public List<Nodedisplayelement> getEl10() {

+        if (el10 == null) {

+            el10 = new ArrayList<Nodedisplayelement>();

+        }

+        return this.el10;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/NodedisplaylayoutType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/NodedisplaylayoutType.java
new file mode 100644
index 0000000..76aa4c5
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/NodedisplaylayoutType.java
@@ -0,0 +1,102 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlElement;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * Settings will not be inherited through hierarchy, but

+ * 				default layout will be set for all scheme-elements, which are not

+ * 				defined

+ * 

+ * <p>Java class for nodedisplaylayout_type complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="nodedisplaylayout_type">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}componentlayout_type">

+ *       &lt;sequence>

+ *         &lt;element name="schemehint" type="{http://eclipse.org/ptp/lml}scheme_type" minOccurs="0"/>

+ *         &lt;element name="el0" type="{http://eclipse.org/ptp/lml}nodedisplayelement0"/>

+ *       &lt;/sequence>

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "nodedisplaylayout_type", propOrder = {

+    "schemehint",

+    "el0"

+})

+public class NodedisplaylayoutType

+    extends ComponentlayoutType

+{

+

+    protected SchemeType schemehint;

+    @XmlElement(required = true)

+    protected Nodedisplayelement0 el0;

+

+    /**

+     * Gets the value of the schemehint property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link SchemeType }

+     *     

+     */

+    public SchemeType getSchemehint() {

+        return schemehint;

+    }

+

+    /**

+     * Sets the value of the schemehint property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link SchemeType }

+     *     

+     */

+    public void setSchemehint(SchemeType value) {

+        this.schemehint = value;

+    }

+

+    /**

+     * Gets the value of the el0 property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link Nodedisplayelement0 }

+     *     

+     */

+    public Nodedisplayelement0 getEl0() {

+        return el0;

+    }

+

+    /**

+     * Sets the value of the el0 property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link Nodedisplayelement0 }

+     *     

+     */

+    public void setEl0(Nodedisplayelement0 value) {

+        this.el0 = value;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ObjectFactory.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ObjectFactory.java
new file mode 100644
index 0000000..b12873b
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/ObjectFactory.java
@@ -0,0 +1,546 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import javax.xml.bind.JAXBElement;

+import javax.xml.bind.annotation.XmlElementDecl;

+import javax.xml.bind.annotation.XmlRegistry;

+import javax.xml.namespace.QName;

+

+

+/**

+ * This object contains factory methods for each 

+ * Java content interface and Java element interface 

+ * generated in the org.eclipse.ptp.rm.jaxb.core.data.lml package. 

+ * <p>An ObjectFactory allows you to programatically 

+ * construct new instances of the Java representation 

+ * for XML content. The Java representation of XML 

+ * content can consist of schema derived interfaces 

+ * and classes representing the binding of schema 

+ * type definitions, element declarations and model 

+ * groups.  Factory methods for each of these are 

+ * provided in this class.

+ * 

+ */

+@XmlRegistry

+public class ObjectFactory {

+

+    private final static QName _Layout_QNAME = new QName("http://eclipse.org/ptp/lml", "layout");

+    private final static QName _LayoutRootAbslayout_QNAME = new QName("", "abslayout");

+    private final static QName _LayoutRootSplitlayout_QNAME = new QName("", "splitlayout");

+    private final static QName _LayoutRootChartlayout_QNAME = new QName("", "chartlayout");

+    private final static QName _LayoutRootTablelayout_QNAME = new QName("", "tablelayout");

+    private final static QName _LayoutRootUsagebarlayout_QNAME = new QName("", "usagebarlayout");

+    private final static QName _LayoutRootInfoboxlayout_QNAME = new QName("", "infoboxlayout");

+    private final static QName _LayoutRootNodedisplaylayout_QNAME = new QName("", "nodedisplaylayout");

+    private final static QName _LayoutRootTextlayout_QNAME = new QName("", "textlayout");

+    private final static QName _PatternTypeSelect_QNAME = new QName("", "select");

+    private final static QName _PatternTypeInclude_QNAME = new QName("", "include");

+    private final static QName _PatternTypeExclude_QNAME = new QName("", "exclude");

+

+    /**

+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.eclipse.ptp.rm.jaxb.core.data.lml

+     * 

+     */

+    public ObjectFactory() {

+    }

+

+    /**

+     * Create an instance of {@link LayoutRoot }

+     * 

+     */

+    public LayoutRoot createLayoutRoot() {

+        return new LayoutRoot();

+    }

+

+    /**

+     * Create an instance of {@link SchemeElement1 }

+     * 

+     */

+    public SchemeElement1 createSchemeElement1() {

+        return new SchemeElement1();

+    }

+

+    /**

+     * Create an instance of {@link SplitlayoutType }

+     * 

+     */

+    public SplitlayoutType createSplitlayoutType() {

+        return new SplitlayoutType();

+    }

+

+    /**

+     * Create an instance of {@link SchemeElement }

+     * 

+     */

+    public SchemeElement createSchemeElement() {

+        return new SchemeElement();

+    }

+

+    /**

+     * Create an instance of {@link ColumnlayoutType }

+     * 

+     */

+    public ColumnlayoutType createColumnlayoutType() {

+        return new ColumnlayoutType();

+    }

+

+    /**

+     * Create an instance of {@link SchemeType }

+     * 

+     */

+    public SchemeType createSchemeType() {

+        return new SchemeType();

+    }

+

+    /**

+     * Create an instance of {@link CommandType }

+     * 

+     */

+    public CommandType createCommandType() {

+        return new CommandType();

+    }

+

+    /**

+     * Create an instance of {@link SchemeElement9 }

+     * 

+     */

+    public SchemeElement9 createSchemeElement9() {

+        return new SchemeElement9();

+    }

+

+    /**

+     * Create an instance of {@link ChartlayoutType }

+     * 

+     */

+    public ChartlayoutType createChartlayoutType() {

+        return new ChartlayoutType();

+    }

+

+    /**

+     * Create an instance of {@link SchemeElement8 }

+     * 

+     */

+    public SchemeElement8 createSchemeElement8() {

+        return new SchemeElement8();

+    }

+

+    /**

+     * Create an instance of {@link SchemeElement7 }

+     * 

+     */

+    public SchemeElement7 createSchemeElement7() {

+        return new SchemeElement7();

+    }

+

+    /**

+     * Create an instance of {@link SchemeElement6 }

+     * 

+     */

+    public SchemeElement6 createSchemeElement6() {

+        return new SchemeElement6();

+    }

+

+    /**

+     * Create an instance of {@link SchemeElement5 }

+     * 

+     */

+    public SchemeElement5 createSchemeElement5() {

+        return new SchemeElement5();

+    }

+

+    /**

+     * Create an instance of {@link PatternType }

+     * 

+     */

+    public PatternType createPatternType() {

+        return new PatternType();

+    }

+

+    /**

+     * Create an instance of {@link SchemeElement4 }

+     * 

+     */

+    public SchemeElement4 createSchemeElement4() {

+        return new SchemeElement4();

+    }

+

+    /**

+     * Create an instance of {@link SchemeElement3 }

+     * 

+     */

+    public SchemeElement3 createSchemeElement3() {

+        return new SchemeElement3();

+    }

+

+    /**

+     * Create an instance of {@link SchemeElement2 }

+     * 

+     */

+    public SchemeElement2 createSchemeElement2() {

+        return new SchemeElement2();

+    }

+

+    /**

+     * Create an instance of {@link ComponentType }

+     * 

+     */

+    public ComponentType createComponentType() {

+        return new ComponentType();

+    }

+

+    /**

+     * Create an instance of {@link ComponentlayoutType }

+     * 

+     */

+    public ComponentlayoutType createComponentlayoutType() {

+        return new ComponentlayoutType();

+    }

+

+    /**

+     * Create an instance of {@link ElementType }

+     * 

+     */

+    public ElementType createElementType() {

+        return new ElementType();

+    }

+

+    /**

+     * Create an instance of {@link ColorconstantType }

+     * 

+     */

+    public ColorconstantType createColorconstantType() {

+        return new ColorconstantType();

+    }

+

+    /**

+     * Create an instance of {@link SchemeElement10 }

+     * 

+     */

+    public SchemeElement10 createSchemeElement10() {

+        return new SchemeElement10();

+    }

+

+    /**

+     * Create an instance of {@link PaneType }

+     * 

+     */

+    public PaneType createPaneType() {

+        return new PaneType();

+    }

+

+    /**

+     * Create an instance of {@link PictureType }

+     * 

+     */

+    public PictureType createPictureType() {

+        return new PictureType();

+    }

+

+    /**

+     * Create an instance of {@link SelectType }

+     * 

+     */

+    public SelectType createSelectType() {

+        return new SelectType();

+    }

+

+    /**

+     * Create an instance of {@link LayoutType }

+     * 

+     */

+    public LayoutType createLayoutType() {

+        return new LayoutType();

+    }

+

+    /**

+     * Create an instance of {@link PatternMatchType }

+     * 

+     */

+    public PatternMatchType createPatternMatchType() {

+        return new PatternMatchType();

+    }

+

+    /**

+     * Create an instance of {@link LayoutRequestType }

+     * 

+     */

+    public LayoutRequestType createLayoutRequestType() {

+        return new LayoutRequestType();

+    }

+

+    /**

+     * Create an instance of {@link UsagebarlayoutType }

+     * 

+     */

+    public UsagebarlayoutType createUsagebarlayoutType() {

+        return new UsagebarlayoutType();

+    }

+

+    /**

+     * Create an instance of {@link Nodedisplayelement }

+     * 

+     */

+    public Nodedisplayelement createNodedisplayelement() {

+        return new Nodedisplayelement();

+    }

+

+    /**

+     * Create an instance of {@link InfoboxlayoutColtype }

+     * 

+     */

+    public InfoboxlayoutColtype createInfoboxlayoutColtype() {

+        return new InfoboxlayoutColtype();

+    }

+

+    /**

+     * Create an instance of {@link InfoboxlayoutType }

+     * 

+     */

+    public InfoboxlayoutType createInfoboxlayoutType() {

+        return new InfoboxlayoutType();

+    }

+

+    /**

+     * Create an instance of {@link NodedisplaylayoutType }

+     * 

+     */

+    public NodedisplaylayoutType createNodedisplaylayoutType() {

+        return new NodedisplaylayoutType();

+    }

+

+    /**

+     * Create an instance of {@link TablelayoutType }

+     * 

+     */

+    public TablelayoutType createTablelayoutType() {

+        return new TablelayoutType();

+    }

+

+    /**

+     * Create an instance of {@link AbslayoutType }

+     * 

+     */

+    public AbslayoutType createAbslayoutType() {

+        return new AbslayoutType();

+    }

+

+    /**

+     * Create an instance of {@link DriverType }

+     * 

+     */

+    public DriverType createDriverType() {

+        return new DriverType();

+    }

+

+    /**

+     * Create an instance of {@link Nodedisplayelement2 }

+     * 

+     */

+    public Nodedisplayelement2 createNodedisplayelement2() {

+        return new Nodedisplayelement2();

+    }

+

+    /**

+     * Create an instance of {@link Nodedisplayelement3 }

+     * 

+     */

+    public Nodedisplayelement3 createNodedisplayelement3() {

+        return new Nodedisplayelement3();

+    }

+

+    /**

+     * Create an instance of {@link Nodedisplayelement0 }

+     * 

+     */

+    public Nodedisplayelement0 createNodedisplayelement0() {

+        return new Nodedisplayelement0();

+    }

+

+    /**

+     * Create an instance of {@link Nodedisplayelement1 }

+     * 

+     */

+    public Nodedisplayelement1 createNodedisplayelement1() {

+        return new Nodedisplayelement1();

+    }

+

+    /**

+     * Create an instance of {@link ColordefinitionType }

+     * 

+     */

+    public ColordefinitionType createColordefinitionType() {

+        return new ColordefinitionType();

+    }

+

+    /**

+     * Create an instance of {@link Nodedisplayelement8 }

+     * 

+     */

+    public Nodedisplayelement8 createNodedisplayelement8() {

+        return new Nodedisplayelement8();

+    }

+

+    /**

+     * Create an instance of {@link Nodedisplayelement9 }

+     * 

+     */

+    public Nodedisplayelement9 createNodedisplayelement9() {

+        return new Nodedisplayelement9();

+    }

+

+    /**

+     * Create an instance of {@link Nodedisplayelement6 }

+     * 

+     */

+    public Nodedisplayelement6 createNodedisplayelement6() {

+        return new Nodedisplayelement6();

+    }

+

+    /**

+     * Create an instance of {@link Nodedisplayelement7 }

+     * 

+     */

+    public Nodedisplayelement7 createNodedisplayelement7() {

+        return new Nodedisplayelement7();

+    }

+

+    /**

+     * Create an instance of {@link RequestType }

+     * 

+     */

+    public RequestType createRequestType() {

+        return new RequestType();

+    }

+

+    /**

+     * Create an instance of {@link Nodedisplayelement4 }

+     * 

+     */

+    public Nodedisplayelement4 createNodedisplayelement4() {

+        return new Nodedisplayelement4();

+    }

+

+    /**

+     * Create an instance of {@link Nodedisplayelement5 }

+     * 

+     */

+    public Nodedisplayelement5 createNodedisplayelement5() {

+        return new Nodedisplayelement5();

+    }

+

+    /**

+     * Create an instance of {@link JAXBElement }{@code <}{@link LayoutRoot }{@code >}}

+     * 

+     */

+    @XmlElementDecl(namespace = "http://eclipse.org/ptp/lml", name = "layout")

+    public JAXBElement<LayoutRoot> createLayout(LayoutRoot value) {

+        return new JAXBElement<LayoutRoot>(_Layout_QNAME, LayoutRoot.class, null, value);

+    }

+

+    /**

+     * Create an instance of {@link JAXBElement }{@code <}{@link AbslayoutType }{@code >}}

+     * 

+     */

+    @XmlElementDecl(namespace = "", name = "abslayout", scope = LayoutRoot.class)

+    public JAXBElement<AbslayoutType> createLayoutRootAbslayout(AbslayoutType value) {

+        return new JAXBElement<AbslayoutType>(_LayoutRootAbslayout_QNAME, AbslayoutType.class, LayoutRoot.class, value);

+    }

+

+    /**

+     * Create an instance of {@link JAXBElement }{@code <}{@link SplitlayoutType }{@code >}}

+     * 

+     */

+    @XmlElementDecl(namespace = "", name = "splitlayout", scope = LayoutRoot.class)

+    public JAXBElement<SplitlayoutType> createLayoutRootSplitlayout(SplitlayoutType value) {

+        return new JAXBElement<SplitlayoutType>(_LayoutRootSplitlayout_QNAME, SplitlayoutType.class, LayoutRoot.class, value);

+    }

+

+    /**

+     * Create an instance of {@link JAXBElement }{@code <}{@link ChartlayoutType }{@code >}}

+     * 

+     */

+    @XmlElementDecl(namespace = "", name = "chartlayout", scope = LayoutRoot.class)

+    public JAXBElement<ChartlayoutType> createLayoutRootChartlayout(ChartlayoutType value) {

+        return new JAXBElement<ChartlayoutType>(_LayoutRootChartlayout_QNAME, ChartlayoutType.class, LayoutRoot.class, value);

+    }

+

+    /**

+     * Create an instance of {@link JAXBElement }{@code <}{@link TablelayoutType }{@code >}}

+     * 

+     */

+    @XmlElementDecl(namespace = "", name = "tablelayout", scope = LayoutRoot.class)

+    public JAXBElement<TablelayoutType> createLayoutRootTablelayout(TablelayoutType value) {

+        return new JAXBElement<TablelayoutType>(_LayoutRootTablelayout_QNAME, TablelayoutType.class, LayoutRoot.class, value);

+    }

+

+    /**

+     * Create an instance of {@link JAXBElement }{@code <}{@link UsagebarlayoutType }{@code >}}

+     * 

+     */

+    @XmlElementDecl(namespace = "", name = "usagebarlayout", scope = LayoutRoot.class)

+    public JAXBElement<UsagebarlayoutType> createLayoutRootUsagebarlayout(UsagebarlayoutType value) {

+        return new JAXBElement<UsagebarlayoutType>(_LayoutRootUsagebarlayout_QNAME, UsagebarlayoutType.class, LayoutRoot.class, value);

+    }

+

+    /**

+     * Create an instance of {@link JAXBElement }{@code <}{@link InfoboxlayoutType }{@code >}}

+     * 

+     */

+    @XmlElementDecl(namespace = "", name = "infoboxlayout", scope = LayoutRoot.class)

+    public JAXBElement<InfoboxlayoutType> createLayoutRootInfoboxlayout(InfoboxlayoutType value) {

+        return new JAXBElement<InfoboxlayoutType>(_LayoutRootInfoboxlayout_QNAME, InfoboxlayoutType.class, LayoutRoot.class, value);

+    }

+

+    /**

+     * Create an instance of {@link JAXBElement }{@code <}{@link NodedisplaylayoutType }{@code >}}

+     * 

+     */

+    @XmlElementDecl(namespace = "", name = "nodedisplaylayout", scope = LayoutRoot.class)

+    public JAXBElement<NodedisplaylayoutType> createLayoutRootNodedisplaylayout(NodedisplaylayoutType value) {

+        return new JAXBElement<NodedisplaylayoutType>(_LayoutRootNodedisplaylayout_QNAME, NodedisplaylayoutType.class, LayoutRoot.class, value);

+    }

+

+    /**

+     * Create an instance of {@link JAXBElement }{@code <}{@link InfoboxlayoutType }{@code >}}

+     * 

+     */

+    @XmlElementDecl(namespace = "", name = "textlayout", scope = LayoutRoot.class)

+    public JAXBElement<InfoboxlayoutType> createLayoutRootTextlayout(InfoboxlayoutType value) {

+        return new JAXBElement<InfoboxlayoutType>(_LayoutRootTextlayout_QNAME, InfoboxlayoutType.class, LayoutRoot.class, value);

+    }

+

+    /**

+     * Create an instance of {@link JAXBElement }{@code <}{@link SelectType }{@code >}}

+     * 

+     */

+    @XmlElementDecl(namespace = "", name = "select", scope = PatternType.class)

+    public JAXBElement<SelectType> createPatternTypeSelect(SelectType value) {

+        return new JAXBElement<SelectType>(_PatternTypeSelect_QNAME, SelectType.class, PatternType.class, value);

+    }

+

+    /**

+     * Create an instance of {@link JAXBElement }{@code <}{@link PatternMatchType }{@code >}}

+     * 

+     */

+    @XmlElementDecl(namespace = "", name = "include", scope = PatternType.class)

+    public JAXBElement<PatternMatchType> createPatternTypeInclude(PatternMatchType value) {

+        return new JAXBElement<PatternMatchType>(_PatternTypeInclude_QNAME, PatternMatchType.class, PatternType.class, value);

+    }

+

+    /**

+     * Create an instance of {@link JAXBElement }{@code <}{@link PatternMatchType }{@code >}}

+     * 

+     */

+    @XmlElementDecl(namespace = "", name = "exclude", scope = PatternType.class)

+    public JAXBElement<PatternMatchType> createPatternTypeExclude(PatternMatchType value) {

+        return new JAXBElement<PatternMatchType>(_PatternTypeExclude_QNAME, PatternMatchType.class, PatternType.class, value);

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/PaneType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/PaneType.java
new file mode 100644
index 0000000..dbb6b0a
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/PaneType.java
@@ -0,0 +1,223 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlAttribute;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * 

+ * 				Describes one side of a splitpane. This tag is later

+ * 				transformed into a panel. You can split one panel with

+ * 				left and right-components or top and bottom-components.

+ * 				First split will cause a horizontal split, second will

+ * 				cause a vertical split. The gid-attribute is for

+ * 				referencing graphical object-id-attributes. If there are

+ * 				child-elements for a pane, gid must not be specified.

+ * 				Through the divpos-element you are able to set the

+ * 				percentage of where to put the divider.

+ * 			

+ * 

+ * <p>Java class for pane_type complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="pane_type">

+ *   &lt;complexContent>

+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+ *       &lt;sequence>

+ *         &lt;sequence minOccurs="0">

+ *           &lt;element name="left" type="{http://eclipse.org/ptp/lml}pane_type"/>

+ *           &lt;element name="right" type="{http://eclipse.org/ptp/lml}pane_type"/>

+ *         &lt;/sequence>

+ *         &lt;sequence minOccurs="0">

+ *           &lt;element name="top" type="{http://eclipse.org/ptp/lml}pane_type"/>

+ *           &lt;element name="bottom" type="{http://eclipse.org/ptp/lml}pane_type"/>

+ *         &lt;/sequence>

+ *       &lt;/sequence>

+ *       &lt;attribute name="gid" type="{http://www.w3.org/2001/XMLSchema}string" />

+ *       &lt;attribute name="divpos" type="{http://eclipse.org/ptp/lml}divpos_type" default="0.5" />

+ *     &lt;/restriction>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "pane_type", propOrder = {

+    "left",

+    "right",

+    "top",

+    "bottom"

+})

+public class PaneType {

+

+    protected PaneType left;

+    protected PaneType right;

+    protected PaneType top;

+    protected PaneType bottom;

+    @XmlAttribute(name = "gid")

+    protected String gid;

+    @XmlAttribute(name = "divpos")

+    protected Double divpos;

+

+    /**

+     * Gets the value of the left property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link PaneType }

+     *     

+     */

+    public PaneType getLeft() {

+        return left;

+    }

+

+    /**

+     * Sets the value of the left property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link PaneType }

+     *     

+     */

+    public void setLeft(PaneType value) {

+        this.left = value;

+    }

+

+    /**

+     * Gets the value of the right property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link PaneType }

+     *     

+     */

+    public PaneType getRight() {

+        return right;

+    }

+

+    /**

+     * Sets the value of the right property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link PaneType }

+     *     

+     */

+    public void setRight(PaneType value) {

+        this.right = value;

+    }

+

+    /**

+     * Gets the value of the top property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link PaneType }

+     *     

+     */

+    public PaneType getTop() {

+        return top;

+    }

+

+    /**

+     * Sets the value of the top property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link PaneType }

+     *     

+     */

+    public void setTop(PaneType value) {

+        this.top = value;

+    }

+

+    /**

+     * Gets the value of the bottom property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link PaneType }

+     *     

+     */

+    public PaneType getBottom() {

+        return bottom;

+    }

+

+    /**

+     * Sets the value of the bottom property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link PaneType }

+     *     

+     */

+    public void setBottom(PaneType value) {

+        this.bottom = value;

+    }

+

+    /**

+     * Gets the value of the gid property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getGid() {

+        return gid;

+    }

+

+    /**

+     * Sets the value of the gid property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setGid(String value) {

+        this.gid = value;

+    }

+

+    /**

+     * Gets the value of the divpos property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link Double }

+     *     

+     */

+    public double getDivpos() {

+        if (divpos == null) {

+            return  0.5D;

+        } else {

+            return divpos;

+        }

+    }

+

+    /**

+     * Sets the value of the divpos property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link Double }

+     *     

+     */

+    public void setDivpos(Double value) {

+        this.divpos = value;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/PatternMatchType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/PatternMatchType.java
new file mode 100644
index 0000000..ff4d5b9
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/PatternMatchType.java
@@ -0,0 +1,65 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlAttribute;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for pattern_match_type complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="pattern_match_type">

+ *   &lt;complexContent>

+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+ *       &lt;attribute name="regexp" type="{http://www.w3.org/2001/XMLSchema}string" />

+ *     &lt;/restriction>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "pattern_match_type")

+public class PatternMatchType {

+

+    @XmlAttribute(name = "regexp")

+    protected String regexp;

+

+    /**

+     * Gets the value of the regexp property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getRegexp() {

+        return regexp;

+    }

+

+    /**

+     * Sets the value of the regexp property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setRegexp(String value) {

+        this.regexp = value;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/PatternType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/PatternType.java
new file mode 100644
index 0000000..1a0bd96
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/PatternType.java
@@ -0,0 +1,97 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.JAXBElement;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlElementRef;

+import javax.xml.bind.annotation.XmlElementRefs;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * A pattern element consists of include and exclude

+ * 				tags. Values of the corresponding column

+ * 				can be checked by the defined regular expressions. They must pass the

+ * 				regexp-checks in

+ * 				the following way: Go through all include/exclude tags. A value must be

+ * 				valid against the

+ * 				include-regexps and must not match with the exclude-regexps. Therefore the order of

+ * 				tags

+ * 				is important.

+ * 			

+ * 

+ * <p>Java class for pattern_type complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="pattern_type">

+ *   &lt;complexContent>

+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+ *       &lt;sequence maxOccurs="unbounded">

+ *         &lt;element name="include" type="{http://eclipse.org/ptp/lml}pattern_match_type" minOccurs="0"/>

+ *         &lt;element name="exclude" type="{http://eclipse.org/ptp/lml}pattern_match_type" minOccurs="0"/>

+ *         &lt;element name="select" type="{http://eclipse.org/ptp/lml}select_type" minOccurs="0"/>

+ *       &lt;/sequence>

+ *     &lt;/restriction>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "pattern_type", propOrder = {

+    "includeAndExcludeAndSelect"

+})

+public class PatternType {

+

+    @XmlElementRefs({

+        @XmlElementRef(name = "include", type = JAXBElement.class),

+        @XmlElementRef(name = "select", type = JAXBElement.class),

+        @XmlElementRef(name = "exclude", type = JAXBElement.class)

+    })

+    protected List<JAXBElement<?>> includeAndExcludeAndSelect;

+

+    /**

+     * Gets the value of the includeAndExcludeAndSelect property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the includeAndExcludeAndSelect property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getIncludeAndExcludeAndSelect().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link JAXBElement }{@code <}{@link PatternMatchType }{@code >}

+     * {@link JAXBElement }{@code <}{@link SelectType }{@code >}

+     * {@link JAXBElement }{@code <}{@link PatternMatchType }{@code >}

+     * 

+     * 

+     */

+    public List<JAXBElement<?>> getIncludeAndExcludeAndSelect() {

+        if (includeAndExcludeAndSelect == null) {

+            includeAndExcludeAndSelect = new ArrayList<JAXBElement<?>>();

+        }

+        return this.includeAndExcludeAndSelect;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/PictureType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/PictureType.java
new file mode 100644
index 0000000..69e4bd0
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/PictureType.java
@@ -0,0 +1,195 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlAttribute;

+import javax.xml.bind.annotation.XmlSchemaType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * 

+ * 				describes a picture, which can be aligned

+ * 			

+ * 

+ * <p>Java class for picture_type complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="picture_type">

+ *   &lt;complexContent>

+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+ *       &lt;attribute name="src" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" />

+ *       &lt;attribute name="align" type="{http://eclipse.org/ptp/lml}align_type" default="CENTER" />

+ *       &lt;attribute name="width" type="{http://eclipse.org/ptp/lml}percent_type" default="0.1" />

+ *       &lt;attribute name="height" type="{http://eclipse.org/ptp/lml}percent_type" default="0.1" />

+ *       &lt;attribute name="inneralign" type="{http://eclipse.org/ptp/lml}align_type" default="CENTER" />

+ *     &lt;/restriction>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "picture_type")

+public class PictureType {

+

+    @XmlAttribute(name = "src", required = true)

+    @XmlSchemaType(name = "anyURI")

+    protected String src;

+    @XmlAttribute(name = "align")

+    protected AlignType align;

+    @XmlAttribute(name = "width")

+    protected Double width;

+    @XmlAttribute(name = "height")

+    protected Double height;

+    @XmlAttribute(name = "inneralign")

+    protected AlignType inneralign;

+

+    /**

+     * Gets the value of the src property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getSrc() {

+        return src;

+    }

+

+    /**

+     * Sets the value of the src property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setSrc(String value) {

+        this.src = value;

+    }

+

+    /**

+     * Gets the value of the align property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link AlignType }

+     *     

+     */

+    public AlignType getAlign() {

+        if (align == null) {

+            return AlignType.CENTER;

+        } else {

+            return align;

+        }

+    }

+

+    /**

+     * Sets the value of the align property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link AlignType }

+     *     

+     */

+    public void setAlign(AlignType value) {

+        this.align = value;

+    }

+

+    /**

+     * Gets the value of the width property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link Double }

+     *     

+     */

+    public double getWidth() {

+        if (width == null) {

+            return  0.1D;

+        } else {

+            return width;

+        }

+    }

+

+    /**

+     * Sets the value of the width property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link Double }

+     *     

+     */

+    public void setWidth(Double value) {

+        this.width = value;

+    }

+

+    /**

+     * Gets the value of the height property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link Double }

+     *     

+     */

+    public double getHeight() {

+        if (height == null) {

+            return  0.1D;

+        } else {

+            return height;

+        }

+    }

+

+    /**

+     * Sets the value of the height property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link Double }

+     *     

+     */

+    public void setHeight(Double value) {

+        this.height = value;

+    }

+

+    /**

+     * Gets the value of the inneralign property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link AlignType }

+     *     

+     */

+    public AlignType getInneralign() {

+        if (inneralign == null) {

+            return AlignType.CENTER;

+        } else {

+            return inneralign;

+        }

+    }

+

+    /**

+     * Sets the value of the inneralign property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link AlignType }

+     *     

+     */

+    public void setInneralign(AlignType value) {

+        this.inneralign = value;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/RequestType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/RequestType.java
new file mode 100644
index 0000000..db6680e
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/RequestType.java
@@ -0,0 +1,108 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * 

+ *     			A type for collecting request information. LML can be

+ *     			used as communication language. The client sends layout

+ *     			information and empty data-tags to the server. The

+ *     			server returns the corresponding data.

+ *     		

+ * 

+ * <p>Java class for RequestType complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="RequestType">

+ *   &lt;complexContent>

+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+ *       &lt;sequence>

+ *         &lt;element name="driver" type="{http://eclipse.org/ptp/lml}DriverType" maxOccurs="unbounded" minOccurs="0"/>

+ *         &lt;element name="layoutManagement" type="{http://eclipse.org/ptp/lml}LayoutRequestType" minOccurs="0"/>

+ *       &lt;/sequence>

+ *     &lt;/restriction>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "RequestType", propOrder = {

+    "driver",

+    "layoutManagement"

+})

+public class RequestType {

+

+    protected List<DriverType> driver;

+    protected LayoutRequestType layoutManagement;

+

+    /**

+     * Gets the value of the driver property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the driver property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getDriver().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link DriverType }

+     * 

+     * 

+     */

+    public List<DriverType> getDriver() {

+        if (driver == null) {

+            driver = new ArrayList<DriverType>();

+        }

+        return this.driver;

+    }

+

+    /**

+     * Gets the value of the layoutManagement property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link LayoutRequestType }

+     *     

+     */

+    public LayoutRequestType getLayoutManagement() {

+        return layoutManagement;

+    }

+

+    /**

+     * Sets the value of the layoutManagement property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link LayoutRequestType }

+     *     

+     */

+    public void setLayoutManagement(LayoutRequestType value) {

+        this.layoutManagement = value;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement.java
new file mode 100644
index 0000000..b19d9ac
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement.java
@@ -0,0 +1,188 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.math.BigInteger;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlAttribute;

+import javax.xml.bind.annotation.XmlSchemaType;

+import javax.xml.bind.annotation.XmlSeeAlso;

+import javax.xml.bind.annotation.XmlType;

+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;

+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;

+

+

+/**

+ * 

+ * 				All el?-tags will be subtypes of this type. Tagname has

+ * 				to be defined here. Data-elements must not repeat this

+ * 				tagname.

+ * 			

+ * 

+ * <p>Java class for scheme_element complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="scheme_element">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}element_type">

+ *       &lt;attribute name="tagname" type="{http://www.w3.org/2001/XMLSchema}NCName" />

+ *       &lt;attribute name="mask" default="%d-">

+ *         &lt;simpleType>

+ *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">

+ *             &lt;pattern value="(([^%])*%(\-|\+|\s|#)*0(\-|\+|\s|#)*(\d)+d([^%])*)|(([^%])*%(\-|\+|\s|#)*d([^%\d])+)|(([^%])*%(\-|\+|\s|#)*1d([^%])*)"/>

+ *           &lt;/restriction>

+ *         &lt;/simpleType>

+ *       &lt;/attribute>

+ *       &lt;attribute name="step" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" default="1" />

+ *       &lt;attribute name="map" type="{http://eclipse.org/ptp/lml}namemapping_type" />

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "scheme_element")

+@XmlSeeAlso({

+    SchemeElement1 .class,

+    SchemeElement9 .class,

+    SchemeElement8 .class,

+    SchemeElement7 .class,

+    SchemeElement6 .class,

+    SchemeElement5 .class,

+    SchemeElement4 .class,

+    SchemeElement3 .class,

+    SchemeElement2 .class,

+    SchemeElement10 .class

+})

+public class SchemeElement

+    extends ElementType

+{

+

+    @XmlAttribute(name = "tagname")

+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)

+    @XmlSchemaType(name = "NCName")

+    protected String tagname;

+    @XmlAttribute(name = "mask")

+    protected String mask;

+    @XmlAttribute(name = "step")

+    @XmlSchemaType(name = "positiveInteger")

+    protected BigInteger step;

+    @XmlAttribute(name = "map")

+    protected String map;

+

+    /**

+     * Gets the value of the tagname property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getTagname() {

+        return tagname;

+    }

+

+    /**

+     * Sets the value of the tagname property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setTagname(String value) {

+        this.tagname = value;

+    }

+

+    /**

+     * Gets the value of the mask property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getMask() {

+        if (mask == null) {

+            return "%d-";

+        } else {

+            return mask;

+        }

+    }

+

+    /**

+     * Sets the value of the mask property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setMask(String value) {

+        this.mask = value;

+    }

+

+    /**

+     * Gets the value of the step property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link BigInteger }

+     *     

+     */

+    public BigInteger getStep() {

+        if (step == null) {

+            return new BigInteger("1");

+        } else {

+            return step;

+        }

+    }

+

+    /**

+     * Sets the value of the step property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link BigInteger }

+     *     

+     */

+    public void setStep(BigInteger value) {

+        this.step = value;

+    }

+

+    /**

+     * Gets the value of the map property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getMap() {

+        return map;

+    }

+

+    /**

+     * Sets the value of the map property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setMap(String value) {

+        this.map = value;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement1.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement1.java
new file mode 100644
index 0000000..3d0e08a
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement1.java
@@ -0,0 +1,76 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for scheme_element1 complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="scheme_element1">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}scheme_element">

+ *       &lt;sequence>

+ *         &lt;element name="el2" type="{http://eclipse.org/ptp/lml}scheme_element2" maxOccurs="unbounded" minOccurs="0"/>

+ *       &lt;/sequence>

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "scheme_element1", propOrder = {

+    "el2"

+})

+public class SchemeElement1

+    extends SchemeElement

+{

+

+    protected List<SchemeElement2> el2;

+

+    /**

+     * Gets the value of the el2 property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the el2 property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getEl2().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link SchemeElement2 }

+     * 

+     * 

+     */

+    public List<SchemeElement2> getEl2() {

+        if (el2 == null) {

+            el2 = new ArrayList<SchemeElement2>();

+        }

+        return this.el2;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement10.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement10.java
new file mode 100644
index 0000000..4050993
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement10.java
@@ -0,0 +1,39 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for scheme_element10 complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="scheme_element10">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}scheme_element">

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "scheme_element10")

+public class SchemeElement10

+    extends SchemeElement

+{

+

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement2.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement2.java
new file mode 100644
index 0000000..8e619df
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement2.java
@@ -0,0 +1,76 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for scheme_element2 complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="scheme_element2">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}scheme_element">

+ *       &lt;sequence>

+ *         &lt;element name="el3" type="{http://eclipse.org/ptp/lml}scheme_element3" maxOccurs="unbounded" minOccurs="0"/>

+ *       &lt;/sequence>

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "scheme_element2", propOrder = {

+    "el3"

+})

+public class SchemeElement2

+    extends SchemeElement

+{

+

+    protected List<SchemeElement3> el3;

+

+    /**

+     * Gets the value of the el3 property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the el3 property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getEl3().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link SchemeElement3 }

+     * 

+     * 

+     */

+    public List<SchemeElement3> getEl3() {

+        if (el3 == null) {

+            el3 = new ArrayList<SchemeElement3>();

+        }

+        return this.el3;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement3.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement3.java
new file mode 100644
index 0000000..f54467d
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement3.java
@@ -0,0 +1,76 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for scheme_element3 complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="scheme_element3">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}scheme_element">

+ *       &lt;sequence>

+ *         &lt;element name="el4" type="{http://eclipse.org/ptp/lml}scheme_element4" maxOccurs="unbounded" minOccurs="0"/>

+ *       &lt;/sequence>

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "scheme_element3", propOrder = {

+    "el4"

+})

+public class SchemeElement3

+    extends SchemeElement

+{

+

+    protected List<SchemeElement4> el4;

+

+    /**

+     * Gets the value of the el4 property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the el4 property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getEl4().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link SchemeElement4 }

+     * 

+     * 

+     */

+    public List<SchemeElement4> getEl4() {

+        if (el4 == null) {

+            el4 = new ArrayList<SchemeElement4>();

+        }

+        return this.el4;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement4.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement4.java
new file mode 100644
index 0000000..17b363e
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement4.java
@@ -0,0 +1,76 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for scheme_element4 complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="scheme_element4">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}scheme_element">

+ *       &lt;sequence>

+ *         &lt;element name="el5" type="{http://eclipse.org/ptp/lml}scheme_element5" maxOccurs="unbounded" minOccurs="0"/>

+ *       &lt;/sequence>

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "scheme_element4", propOrder = {

+    "el5"

+})

+public class SchemeElement4

+    extends SchemeElement

+{

+

+    protected List<SchemeElement5> el5;

+

+    /**

+     * Gets the value of the el5 property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the el5 property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getEl5().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link SchemeElement5 }

+     * 

+     * 

+     */

+    public List<SchemeElement5> getEl5() {

+        if (el5 == null) {

+            el5 = new ArrayList<SchemeElement5>();

+        }

+        return this.el5;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement5.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement5.java
new file mode 100644
index 0000000..270d7bf
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement5.java
@@ -0,0 +1,76 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for scheme_element5 complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="scheme_element5">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}scheme_element">

+ *       &lt;sequence>

+ *         &lt;element name="el6" type="{http://eclipse.org/ptp/lml}scheme_element6" maxOccurs="unbounded" minOccurs="0"/>

+ *       &lt;/sequence>

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "scheme_element5", propOrder = {

+    "el6"

+})

+public class SchemeElement5

+    extends SchemeElement

+{

+

+    protected List<SchemeElement6> el6;

+

+    /**

+     * Gets the value of the el6 property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the el6 property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getEl6().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link SchemeElement6 }

+     * 

+     * 

+     */

+    public List<SchemeElement6> getEl6() {

+        if (el6 == null) {

+            el6 = new ArrayList<SchemeElement6>();

+        }

+        return this.el6;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement6.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement6.java
new file mode 100644
index 0000000..4f22fd3
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement6.java
@@ -0,0 +1,76 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for scheme_element6 complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="scheme_element6">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}scheme_element">

+ *       &lt;sequence>

+ *         &lt;element name="el7" type="{http://eclipse.org/ptp/lml}scheme_element7" maxOccurs="unbounded" minOccurs="0"/>

+ *       &lt;/sequence>

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "scheme_element6", propOrder = {

+    "el7"

+})

+public class SchemeElement6

+    extends SchemeElement

+{

+

+    protected List<SchemeElement7> el7;

+

+    /**

+     * Gets the value of the el7 property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the el7 property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getEl7().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link SchemeElement7 }

+     * 

+     * 

+     */

+    public List<SchemeElement7> getEl7() {

+        if (el7 == null) {

+            el7 = new ArrayList<SchemeElement7>();

+        }

+        return this.el7;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement7.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement7.java
new file mode 100644
index 0000000..1fbf592
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement7.java
@@ -0,0 +1,76 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for scheme_element7 complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="scheme_element7">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}scheme_element">

+ *       &lt;sequence>

+ *         &lt;element name="el8" type="{http://eclipse.org/ptp/lml}scheme_element8" maxOccurs="unbounded" minOccurs="0"/>

+ *       &lt;/sequence>

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "scheme_element7", propOrder = {

+    "el8"

+})

+public class SchemeElement7

+    extends SchemeElement

+{

+

+    protected List<SchemeElement8> el8;

+

+    /**

+     * Gets the value of the el8 property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the el8 property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getEl8().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link SchemeElement8 }

+     * 

+     * 

+     */

+    public List<SchemeElement8> getEl8() {

+        if (el8 == null) {

+            el8 = new ArrayList<SchemeElement8>();

+        }

+        return this.el8;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement8.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement8.java
new file mode 100644
index 0000000..85dc70b
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement8.java
@@ -0,0 +1,76 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for scheme_element8 complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="scheme_element8">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}scheme_element">

+ *       &lt;sequence>

+ *         &lt;element name="el9" type="{http://eclipse.org/ptp/lml}scheme_element9" maxOccurs="unbounded" minOccurs="0"/>

+ *       &lt;/sequence>

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "scheme_element8", propOrder = {

+    "el9"

+})

+public class SchemeElement8

+    extends SchemeElement

+{

+

+    protected List<SchemeElement9> el9;

+

+    /**

+     * Gets the value of the el9 property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the el9 property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getEl9().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link SchemeElement9 }

+     * 

+     * 

+     */

+    public List<SchemeElement9> getEl9() {

+        if (el9 == null) {

+            el9 = new ArrayList<SchemeElement9>();

+        }

+        return this.el9;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement9.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement9.java
new file mode 100644
index 0000000..58d9004
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeElement9.java
@@ -0,0 +1,76 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for scheme_element9 complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="scheme_element9">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}scheme_element">

+ *       &lt;sequence>

+ *         &lt;element name="el10" type="{http://eclipse.org/ptp/lml}scheme_element10" maxOccurs="unbounded" minOccurs="0"/>

+ *       &lt;/sequence>

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "scheme_element9", propOrder = {

+    "el10"

+})

+public class SchemeElement9

+    extends SchemeElement

+{

+

+    protected List<SchemeElement10> el10;

+

+    /**

+     * Gets the value of the el10 property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the el10 property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getEl10().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link SchemeElement10 }

+     * 

+     * 

+     */

+    public List<SchemeElement10> getEl10() {

+        if (el10 == null) {

+            el10 = new ArrayList<SchemeElement10>();

+        }

+        return this.el10;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeType.java
new file mode 100644
index 0000000..8dde7e1
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SchemeType.java
@@ -0,0 +1,79 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlElement;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * Scheme description of batch-system. Describes an empty

+ * 				instance of the actual batch system.

+ * 

+ * <p>Java class for scheme_type complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="scheme_type">

+ *   &lt;complexContent>

+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+ *       &lt;sequence>

+ *         &lt;element name="el1" type="{http://eclipse.org/ptp/lml}scheme_element1" maxOccurs="unbounded"/>

+ *       &lt;/sequence>

+ *     &lt;/restriction>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "scheme_type", propOrder = {

+    "el1"

+})

+public class SchemeType {

+

+    @XmlElement(required = true)

+    protected List<SchemeElement1> el1;

+

+    /**

+     * Gets the value of the el1 property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the el1 property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getEl1().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link SchemeElement1 }

+     * 

+     * 

+     */

+    public List<SchemeElement1> getEl1() {

+        if (el1 == null) {

+            el1 = new ArrayList<SchemeElement1>();

+        }

+        return this.el1;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SelectType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SelectType.java
new file mode 100644
index 0000000..e022ca0
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SelectType.java
@@ -0,0 +1,110 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlAttribute;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * One select tag describes a selection of a subset

+ * 				within a table.

+ * 				It is used for filtering. All table rows are traversed and they

+ * 				are checked against the relation given by the rel-attribute.

+ * 				If the comparison term is true, the table row will stay in the

+ * 				filtered result, otherwise it is removed. Example: a table has the

+ * 				row totalcores. The user is only interested in big jobs with more

+ * 				than 1000 cores. A select tag must be added with the value=1000

+ * 				and the rel=gt. Thus, only the table rows with more than 1000 cores

+ * 				are transferred to the client.

+ * 				The select tags are executed subsequently. This allows the selection

+ * 				of a subset from another subset generated by a previous select.

+ * 			

+ * 

+ * <p>Java class for select_type complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="select_type">

+ *   &lt;complexContent>

+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">

+ *       &lt;attribute name="value" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />

+ *       &lt;attribute name="rel" type="{http://eclipse.org/ptp/lml}select_relation_type" default="=~" />

+ *     &lt;/restriction>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "select_type")

+public class SelectType {

+

+    @XmlAttribute(name = "value", required = true)

+    protected String value;

+    @XmlAttribute(name = "rel")

+    protected String rel;

+

+    /**

+     * Gets the value of the value property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getValue() {

+        return value;

+    }

+

+    /**

+     * Sets the value of the value property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setValue(String value) {

+        this.value = value;

+    }

+

+    /**

+     * Gets the value of the rel property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getRel() {

+        if (rel == null) {

+            return "=~";

+        } else {

+            return rel;

+        }

+    }

+

+    /**

+     * Sets the value of the rel property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setRel(String value) {

+        this.rel = value;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SplitlayoutType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SplitlayoutType.java
new file mode 100644
index 0000000..815e790
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/SplitlayoutType.java
@@ -0,0 +1,186 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlAttribute;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * <p>Java class for splitlayout_type complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="splitlayout_type">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}layout_type">

+ *       &lt;choice>

+ *         &lt;sequence>

+ *           &lt;element name="left" type="{http://eclipse.org/ptp/lml}pane_type"/>

+ *           &lt;element name="right" type="{http://eclipse.org/ptp/lml}pane_type"/>

+ *         &lt;/sequence>

+ *         &lt;sequence>

+ *           &lt;element name="top" type="{http://eclipse.org/ptp/lml}pane_type"/>

+ *           &lt;element name="bottom" type="{http://eclipse.org/ptp/lml}pane_type"/>

+ *         &lt;/sequence>

+ *       &lt;/choice>

+ *       &lt;attribute name="divpos" type="{http://eclipse.org/ptp/lml}divpos_type" default="0.5" />

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "splitlayout_type", propOrder = {

+    "left",

+    "right",

+    "top",

+    "bottom"

+})

+public class SplitlayoutType

+    extends LayoutType

+{

+

+    protected PaneType left;

+    protected PaneType right;

+    protected PaneType top;

+    protected PaneType bottom;

+    @XmlAttribute(name = "divpos")

+    protected Double divpos;

+

+    /**

+     * Gets the value of the left property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link PaneType }

+     *     

+     */

+    public PaneType getLeft() {

+        return left;

+    }

+

+    /**

+     * Sets the value of the left property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link PaneType }

+     *     

+     */

+    public void setLeft(PaneType value) {

+        this.left = value;

+    }

+

+    /**

+     * Gets the value of the right property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link PaneType }

+     *     

+     */

+    public PaneType getRight() {

+        return right;

+    }

+

+    /**

+     * Sets the value of the right property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link PaneType }

+     *     

+     */

+    public void setRight(PaneType value) {

+        this.right = value;

+    }

+

+    /**

+     * Gets the value of the top property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link PaneType }

+     *     

+     */

+    public PaneType getTop() {

+        return top;

+    }

+

+    /**

+     * Sets the value of the top property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link PaneType }

+     *     

+     */

+    public void setTop(PaneType value) {

+        this.top = value;

+    }

+

+    /**

+     * Gets the value of the bottom property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link PaneType }

+     *     

+     */

+    public PaneType getBottom() {

+        return bottom;

+    }

+

+    /**

+     * Sets the value of the bottom property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link PaneType }

+     *     

+     */

+    public void setBottom(PaneType value) {

+        this.bottom = value;

+    }

+

+    /**

+     * Gets the value of the divpos property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link Double }

+     *     

+     */

+    public double getDivpos() {

+        if (divpos == null) {

+            return  0.5D;

+        } else {

+            return divpos;

+        }

+    }

+

+    /**

+     * Sets the value of the divpos property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link Double }

+     *     

+     */

+    public void setDivpos(Double value) {

+        this.divpos = value;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/TablelayoutType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/TablelayoutType.java
new file mode 100644
index 0000000..3c0c4ff
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/TablelayoutType.java
@@ -0,0 +1,110 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.util.ArrayList;

+import java.util.List;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlAttribute;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * Layout for a table

+ * 

+ * <p>Java class for tablelayout_type complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="tablelayout_type">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}componentlayout_type">

+ *       &lt;sequence>

+ *         &lt;element name="column" type="{http://eclipse.org/ptp/lml}columnlayout_type" maxOccurs="unbounded" minOccurs="0"/>

+ *       &lt;/sequence>

+ *       &lt;attribute name="contenthint" type="{http://eclipse.org/ptp/lml}content_type" default="other" />

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "tablelayout_type", propOrder = {

+    "column"

+})

+public class TablelayoutType

+    extends ComponentlayoutType

+{

+

+    protected List<ColumnlayoutType> column;

+    @XmlAttribute(name = "contenthint")

+    protected ContentType contenthint;

+

+    /**

+     * Gets the value of the column property.

+     * 

+     * <p>

+     * This accessor method returns a reference to the live list,

+     * not a snapshot. Therefore any modification you make to the

+     * returned list will be present inside the JAXB object.

+     * This is why there is not a <CODE>set</CODE> method for the column property.

+     * 

+     * <p>

+     * For example, to add a new item, do as follows:

+     * <pre>

+     *    getColumn().add(newItem);

+     * </pre>

+     * 

+     * 

+     * <p>

+     * Objects of the following type(s) are allowed in the list

+     * {@link ColumnlayoutType }

+     * 

+     * 

+     */

+    public List<ColumnlayoutType> getColumn() {

+        if (column == null) {

+            column = new ArrayList<ColumnlayoutType>();

+        }

+        return this.column;

+    }

+

+    /**

+     * Gets the value of the contenthint property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link ContentType }

+     *     

+     */

+    public ContentType getContenthint() {

+        if (contenthint == null) {

+            return ContentType.OTHER;

+        } else {

+            return contenthint;

+        }

+    }

+

+    /**

+     * Sets the value of the contenthint property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link ContentType }

+     *     

+     */

+    public void setContenthint(ContentType value) {

+        this.contenthint = value;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/UsagebarlayoutType.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/UsagebarlayoutType.java
new file mode 100644
index 0000000..5d1bcae
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/UsagebarlayoutType.java
@@ -0,0 +1,116 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

+

+import java.math.BigInteger;

+import javax.xml.bind.annotation.XmlAccessType;

+import javax.xml.bind.annotation.XmlAccessorType;

+import javax.xml.bind.annotation.XmlAttribute;

+import javax.xml.bind.annotation.XmlSchemaType;

+import javax.xml.bind.annotation.XmlType;

+

+

+/**

+ * 

+ * 				Define special layout-options for a usagebar

+ * 			

+ * 

+ * <p>Java class for usagebarlayout_type complex type.

+ * 

+ * <p>The following schema fragment specifies the expected content contained within this class.

+ * 

+ * <pre>

+ * &lt;complexType name="usagebarlayout_type">

+ *   &lt;complexContent>

+ *     &lt;extension base="{http://eclipse.org/ptp/lml}componentlayout_type">

+ *       &lt;attribute name="scale" default="nodes">

+ *         &lt;simpleType>

+ *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">

+ *             &lt;enumeration value="nodes"/>

+ *             &lt;enumeration value="cpus"/>

+ *           &lt;/restriction>

+ *         &lt;/simpleType>

+ *       &lt;/attribute>

+ *       &lt;attribute name="interval" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" default="4" />

+ *     &lt;/extension>

+ *   &lt;/complexContent>

+ * &lt;/complexType>

+ * </pre>

+ * 

+ * 

+ */

+@XmlAccessorType(XmlAccessType.FIELD)

+@XmlType(name = "usagebarlayout_type")

+public class UsagebarlayoutType

+    extends ComponentlayoutType

+{

+

+    @XmlAttribute(name = "scale")

+    protected String scale;

+    @XmlAttribute(name = "interval")

+    @XmlSchemaType(name = "positiveInteger")

+    protected BigInteger interval;

+

+    /**

+     * Gets the value of the scale property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link String }

+     *     

+     */

+    public String getScale() {

+        if (scale == null) {

+            return "nodes";

+        } else {

+            return scale;

+        }

+    }

+

+    /**

+     * Sets the value of the scale property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link String }

+     *     

+     */

+    public void setScale(String value) {

+        this.scale = value;

+    }

+

+    /**

+     * Gets the value of the interval property.

+     * 

+     * @return

+     *     possible object is

+     *     {@link BigInteger }

+     *     

+     */

+    public BigInteger getInterval() {

+        if (interval == null) {

+            return new BigInteger("4");

+        } else {

+            return interval;

+        }

+    }

+

+    /**

+     * Sets the value of the interval property.

+     * 

+     * @param value

+     *     allowed object is

+     *     {@link BigInteger }

+     *     

+     */

+    public void setInterval(BigInteger value) {

+        this.interval = value;

+    }

+

+}

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/package-info.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/package-info.java
new file mode 100644
index 0000000..6124718
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/lml/package-info.java
@@ -0,0 +1,9 @@
+//

+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

+// Any modifications to this file will be lost upon recompilation of the source schema. 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

+//

+

+@javax.xml.bind.annotation.XmlSchema(namespace = "http://eclipse.org/ptp/lml")

+package org.eclipse.ptp.rm.jaxb.core.data.lml;

diff --git a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/package-info.java b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/package-info.java
index 616d19d..314a9b5 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/package-info.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.core/src/org/eclipse/ptp/rm/jaxb/core/data/package-info.java
@@ -2,8 +2,9 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 

 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 

 // Any modifications to this file will be lost upon recompilation of the source schema. 

-// Generated on: 2013.09.05 at 08:05:11 AM EDT 

+// Generated on: 2013.11.05 at 08:09:06 AM EST 

 //

 

 @javax.xml.bind.annotation.XmlSchema(namespace = "http://eclipse.org/ptp/rm", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)

 package org.eclipse.ptp.rm.jaxb.core.data;

+

diff --git a/rms/org.eclipse.ptp.rm.jaxb.doc.isv/html/XMLSchema.html b/rms/org.eclipse.ptp.rm.jaxb.doc.isv/html/XMLSchema.html
index 5796a96..5420bed 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.doc.isv/html/XMLSchema.html
+++ b/rms/org.eclipse.ptp.rm.jaxb.doc.isv/html/XMLSchema.html
@@ -15,7 +15,7 @@
 		that its functioning and appearance are determined by a set of
 		definitions provided via an XML file. What follows is a detailed
 		explanation of the schema governing the resource manager XML
-		definition. The latest version of the target configuration schema is available at the URL <a href="http://eclipse.org/ptp/schemas/v1.1/rm.xsd">http://eclipse.org/ptp/schemas/v1.1/rm.xsd</a>.
+		definition. The latest version of the target configuration schema is available at the URL <a href="http://eclipse.org/ptp/schemas/v1.2/rm.xsd">http://eclipse.org/ptp/schemas/v1.2/rm.xsd</a>.
 	</p>
 
 	<p>
diff --git a/rms/org.eclipse.ptp.rm.jaxb.doc.isv/pom.xml b/rms/org.eclipse.ptp.rm.jaxb.doc.isv/pom.xml
index 0e84c71..bbd5ca4 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.doc.isv/pom.xml
+++ b/rms/org.eclipse.ptp.rm.jaxb.doc.isv/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rms/org.eclipse.ptp.rm.jaxb.doc.user/html/PBSHelpPage.html b/rms/org.eclipse.ptp.rm.jaxb.doc.user/html/PBSHelpPage.html
index dfa2fcd..106482f 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.doc.user/html/PBSHelpPage.html
+++ b/rms/org.eclipse.ptp.rm.jaxb.doc.user/html/PBSHelpPage.html
@@ -172,7 +172,7 @@
 	</h3>
 	<p>If you wish to use a custom script that does more than just
 		launch the application selected from your local or remote workspace,
-		this tab is where you do it. The "Browse Workspace" button at the top
+		this tab is where you do it. The "Browse" button at the top
 		right takes you first to your current workspace, in case you have
 		imported a batch script there from either your local machine or a
 		remote host; however, you can usually navigate from there to other
@@ -181,8 +181,8 @@
 		the left of the browse button, and the contents of the script in the
 		large (scrolling) text area below. The script is not editable there;
 		to edit, you will need to import it like any other file into your
-		workspace. The selection can be cleared or cancelled using the "Clear
-		Script" button.</p>
+		workspace. The selection can be cleared or cancelled using the "Clear"
+		button.</p>
 	<p>The PBS import tab is preconfigured with an optional table
 		viewer for selecting the variables from the environment which you wish
 		to pass to the launch command along with the script.</p>
diff --git a/rms/org.eclipse.ptp.rm.jaxb.doc.user/pom.xml b/rms/org.eclipse.ptp.rm.jaxb.doc.user/pom.xml
index 2010e38..4e942ba 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.doc.user/pom.xml
+++ b/rms/org.eclipse.ptp.rm.jaxb.doc.user/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rms/org.eclipse.ptp.rm.jaxb.tests/META-INF/MANIFEST.MF b/rms/org.eclipse.ptp.rm.jaxb.tests/META-INF/MANIFEST.MF
index d279375..9ffaf33 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.tests/META-INF/MANIFEST.MF
+++ b/rms/org.eclipse.ptp.rm.jaxb.tests/META-INF/MANIFEST.MF
@@ -6,7 +6,7 @@
 Bundle-Activator: org.eclipse.ptp.rm.jaxb.tests.JAXBTestsPlugin
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.debug.core,
- org.eclipse.ptp.remote.core,
+ org.eclipse.remote.core,
  org.eclipse.ptp.core,
  org.junit,
  org.eclipse.ptp.rm.jaxb.core,
diff --git a/rms/org.eclipse.ptp.rm.jaxb.tests/src/org/eclipse/ptp/rm/jaxb/tests/RMLaunchTest.java b/rms/org.eclipse.ptp.rm.jaxb.tests/src/org/eclipse/ptp/rm/jaxb/tests/RMLaunchTest.java
index 95280b0..105fe23 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.tests/src/org/eclipse/ptp/rm/jaxb/tests/RMLaunchTest.java
+++ b/rms/org.eclipse.ptp.rm.jaxb.tests/src/org/eclipse/ptp/rm/jaxb/tests/RMLaunchTest.java
@@ -38,14 +38,14 @@
 import org.eclipse.ptp.core.jobs.IJobStatus;
 import org.eclipse.ptp.internal.rm.jaxb.control.core.JAXBControlConstants;
 import org.eclipse.ptp.internal.rm.jaxb.core.JAXBCoreConstants;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
 import org.eclipse.ptp.rm.jaxb.control.core.ILaunchController;
 import org.eclipse.ptp.rm.jaxb.control.core.LaunchControllerManager;
 import org.eclipse.ptp.rm.jaxb.core.IVariableMap;
 import org.eclipse.ptp.rm.jaxb.core.data.AttributeType;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnectionManager;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.RemoteServices;
 
 public class RMLaunchTest extends TestCase {
 
diff --git a/rms/org.eclipse.ptp.rm.jaxb.ui/META-INF/MANIFEST.MF b/rms/org.eclipse.ptp.rm.jaxb.ui/META-INF/MANIFEST.MF
index 2a93eb9..e578bdf 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.ui/META-INF/MANIFEST.MF
+++ b/rms/org.eclipse.ptp.rm.jaxb.ui/META-INF/MANIFEST.MF
@@ -9,10 +9,9 @@
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.ui,
  org.eclipse.ptp.rm.jaxb.core,
- org.eclipse.ptp.remote.core,
  org.eclipse.ptp.core,
  org.eclipse.debug.ui,
- org.eclipse.ptp.remote.core
+ org.eclipse.remote.core
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.ptp.internal.rm.jaxb.ui;x-friends:="org.eclipse.ptp.rm.jaxb.control.ui,org.eclipse.ptp.launch",
  org.eclipse.ptp.internal.rm.jaxb.ui.messages;x-internal:=true,
diff --git a/rms/org.eclipse.ptp.rm.jaxb.ui/pom.xml b/rms/org.eclipse.ptp.rm.jaxb.ui/pom.xml
index ddaabff..8381c5f 100644
--- a/rms/org.eclipse.ptp.rm.jaxb.ui/pom.xml
+++ b/rms/org.eclipse.ptp.rm.jaxb.ui/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rms/org.eclipse.ptp.rm.lml.core/pom.xml b/rms/org.eclipse.ptp.rm.lml.core/pom.xml
index da16f23..32e0288 100644
--- a/rms/org.eclipse.ptp.rm.lml.core/pom.xml
+++ b/rms/org.eclipse.ptp.rm.lml.core/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rms/org.eclipse.ptp.rm.lml.core/src/org/eclipse/ptp/rm/lml/core/ILMLCoreConstants.java b/rms/org.eclipse.ptp.rm.lml.core/src/org/eclipse/ptp/rm/lml/core/ILMLCoreConstants.java
index b7f26bd..dd87211 100644
--- a/rms/org.eclipse.ptp.rm.lml.core/src/org/eclipse/ptp/rm/lml/core/ILMLCoreConstants.java
+++ b/rms/org.eclipse.ptp.rm.lml.core/src/org/eclipse/ptp/rm/lml/core/ILMLCoreConstants.java
@@ -184,7 +184,7 @@
 	public static final String MONITOR_USER_VAR = "monitor.user.name";//$NON-NLS-1$
 	public static final String MONITOR_ADDRESS_VAR = "monitor.address";//$NON-NLS-1$
 	public static final String ARPA = ".in-addr.arpa";//$NON-NLS-1$
-	public static final String ECLIPSESETTINGS = ".eclipsesettings";//$NON-NLS-1$
+	//	public static final String ECLIPSESETTINGS = ".eclipsesettings";//$NON-NLS-1$
 	public static final String DEBUG_PACKAGE = "org.eclipse.debug";//$NON-NLS-1$
 	public static final String PTP_PACKAGE = "org.eclipse.ptp";//$NON-NLS-1$
 
diff --git a/rms/org.eclipse.ptp.rm.lml.core/src/org/eclipse/ptp/rm/lml/core/LMLManager.java b/rms/org.eclipse.ptp.rm.lml.core/src/org/eclipse/ptp/rm/lml/core/LMLManager.java
index 8ed34f6..5485418 100644
--- a/rms/org.eclipse.ptp.rm.lml.core/src/org/eclipse/ptp/rm/lml/core/LMLManager.java
+++ b/rms/org.eclipse.ptp.rm.lml.core/src/org/eclipse/ptp/rm/lml/core/LMLManager.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2011-2013 Forschungszentrum Juelich GmbH
+ * Copyright (c) 2011-2014 Forschungszentrum Juelich GmbH
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution and is available at
@@ -45,9 +45,22 @@
 
 /**
  * 
+ * This is the input point for LML data to the system monitoring perspective.
+ * It manages a list of ILguiItem instances (in short Lgui in the following),
+ * one for each monitoring connection.
+ * With this manager, updates on LML data can be triggered. Moreover, jobs
+ * started via Eclipse can be added into the job lists. This API is used by
+ * the lml.monitor.core.MonitorControl to fill LML data from LML_da into the
+ * main LML handling plug-ins. It manages the start-up and clean-up for a
+ * monitoring connection and converts the LML data into JAXB-classes and
+ * forwards them to the LML displays in the rm.lml.ui plug-in.
+ * 
  */
 public class LMLManager {
 
+	/**
+	 * @return the singleton instance of the LMLManager
+	 */
 	public static LMLManager getInstance() {
 		if (manager == null) {
 			manager = new LMLManager();
@@ -55,39 +68,75 @@
 		return manager;
 	}
 
-	/*
+	/**
 	 * Map of all ILguiItems
 	 * 
-	 * For every created Resource Manager instance there is an entry in this map; as long as the Resource Manager instance is not
-	 * removed an associates entry keeps in this map
+	 * For every created monitoring connection there is an entry in this map.
+	 * As long as the monitoring connection is not
+	 * removed an associated entry is keept in this map.
+	 * 
+	 * It maps a unique ID to the ILguiItem instance.
 	 */
 	protected final Map<String, ILguiItem> LGUIS = new HashMap<String, ILguiItem>();
 
-	/*
-	 * The current considered ILguiItem
+	/**
+	 * The active ILguiItem, which is currently selected by the user.
 	 */
 	private ILguiItem fLguiItem = null;
 
-	/*
-	 * A list of all listeners on the ILguiItem
+	/**
+	 * A list of all listeners on the ILguiItem, they can listen for job highlighting, a data update
+	 * opening and closing a connection.
 	 */
 	private final ListenerList viewListeners = new ListenerList();
 
-	/*
-	 * An instance of this class.
+	/**
+	 * An instance of this class. Needed for implementing the singleton pattern.
 	 */
 	private static LMLManager manager;
 
+	/**
+	 * True, if there is an active connection at all, false otherwise.
+	 */
 	private boolean isDisplayed = false;
 
+	/**
+	 * Private constructor causes this class to be only used as singleton.
+	 */
 	private LMLManager() {
 		manager = this;
 	}
 
+	/**
+	 * The view with the name <code>view</code> registers itself
+	 * as listener for LML data updates. It is then notified on
+	 * data updates, object marking and table filtering.
+	 * 
+	 * @param listener
+	 *            the listening object
+	 * @param view
+	 *            the name of the view, which is registering a listener here
+	 */
 	public void addListener(ILMLListener listener, String view) {
 		viewListeners.add(listener);
 	}
 
+	/**
+	 * This method allows to add a special job to the table list.
+	 * A job submitted via PTP can be added into the job lists here.
+	 * By using this method changes on the job status can be updated more
+	 * quickly instead of waiting for the entire monitoring workflow to
+	 * have updated the status of the whole system.
+	 * This method must not be called before the corresponding Lgui is opened.
+	 * Otherwise, it will not have any effect.
+	 * 
+	 * @param name
+	 *            the hash name identifying an Lgui
+	 * @param jobId
+	 *            ID for the new added job
+	 * @param status
+	 *            status data object for the added job, transfers data from the job submission to the monitoring
+	 */
 	public void addUserJob(String name, String jobId, JobStatusData status) {
 		final ILguiItem item = LGUIS.get(name);
 		if (item != null) {
@@ -98,6 +147,13 @@
 		}
 	}
 
+	/**
+	 * Remove an Lgui from the list of active Lguis.
+	 * This method is called, when the user stops the corresponding monitoring connection.
+	 * 
+	 * @param name
+	 *            the hash name identifying the closed Lgui
+	 */
 	public void closeLgui(String name) {
 		ILguiItem item = null;
 		synchronized (LGUIS) {
@@ -112,6 +168,17 @@
 
 	}
 
+	/**
+	 * This can be used to request a filtering of the table identified
+	 * with <code>gid</code>. The table is filtered with the patterns
+	 * given in the filterValues list. Each pattern defines a column
+	 * and a corresponding range or relation, on which to filter.
+	 * 
+	 * @param gid
+	 *            identifies the table, which needs to be filtered
+	 * @param filterValues
+	 *            patterns describing how to filter the table
+	 */
 	public void filterLgui(String gid, List<IPattern> filterValues) {
 		fireFilterLgui(gid, filterValues);
 	}
@@ -123,7 +190,7 @@
 	 * for successive sessions.
 	 * 
 	 * @param name
-	 *            Name of the ResourceManager
+	 *            the hash name identifying the Lgui
 	 * @return LML-Layout as string containing the current LML-Layout configuration
 	 */
 	public String getCurrentLayout(String name) {
@@ -142,10 +209,24 @@
 		return null;
 	}
 
+	/**
+	 * @return the currently active monitoring
+	 */
 	public ILguiItem getSelectedLguiItem() {
 		return fLguiItem;
 	}
 
+	/**
+	 * Retrieve status data stored for a special user job, which was added due to
+	 * a job submission via PTP. If no job is found with the given jobId, null
+	 * is returned.
+	 * 
+	 * @param name
+	 *            the hash name identifying the Lgui
+	 * @param jobId
+	 *            ID of the user job
+	 * @return status data stored for this job or null, if no job is found
+	 */
 	public JobStatusData getUserJob(String name, String jobId) {
 		final ILguiItem item = LGUIS.get(name);
 		if (item != null) {
@@ -154,6 +235,13 @@
 		return null;
 	}
 
+	/**
+	 * Retrieve all jobs stored in the Lgui specified by <code>name</code>.
+	 * 
+	 * @param name
+	 *            the hash name identifying the Lgui
+	 * @return array of status data objects
+	 */
 	public JobStatusData[] getUserJobs(String name) {
 		ILguiItem item = null;
 		synchronized (LGUIS) {
@@ -165,21 +253,34 @@
 		return null;
 	}
 
+	/**
+	 * Fire a mark object event for the LML object identified by <code>oid</code>.
+	 * Marking in object is usually done by clicking on the object, while selecting
+	 * an object means hovering over the object.
+	 * 
+	 * @param oid
+	 *            the ID of an object from an LML file
+	 */
 	public void markObject(String oid) {
 		fireMarkObject(oid);
 	}
 
 	/**
-	 * This method is called by LMLResourceManagerMonitor. A ResourceManager was started.
+	 * This method is called by the monitoring core. A new connection is started.
+	 * A new Lgui is added to the list of managed Lguis. Stored user jobs are
+	 * placed into the data model. The last layout request is restored.
 	 * 
 	 * @param name
-	 *            Name of the ResourceManager
-	 * @param configuration
-	 *            Configuration information for session
+	 *            the hash name identifying the opened Lgui
+	 * @param username
+	 *            the username of the current user, who might submit jobs using PTP
+	 * @param request
+	 *            request typ, which is used to forward options to LML_DA
 	 * @param layout
-	 *            Layout from an earlier Eclipse session
+	 *            layout from a previous Eclipse session
 	 * @param jobs
-	 *            Array of earlier started jobs
+	 *            array of earlier started jobs
+	 * 
 	 */
 	public void openLgui(String name, String username, RequestType request, String layout, JobStatusData[] jobs) {
 		synchronized (LGUIS) {
@@ -202,10 +303,24 @@
 		}
 	}
 
+	/**
+	 * Remove a listener from the list of notified objects.
+	 * 
+	 * @param listener
+	 *            the listener object, which should be removed.
+	 */
 	public void removeListener(ILMLListener listener) {
 		viewListeners.remove(listener);
 	}
 
+	/**
+	 * Remove a job from the job lists.
+	 * 
+	 * @param name
+	 *            the hash name identifying the Lgui
+	 * @param jobId
+	 *            job ID for the job, which has to be removed
+	 */
 	public void removeUserJob(String name, String jobId) {
 		final ILguiItem lguiItem = LGUIS.get(name);
 		if (lguiItem != null) {
@@ -216,6 +331,13 @@
 		}
 	}
 
+	/**
+	 * Activate the Lgui with the specified name.
+	 * This updates all monitoring views with the data of the new Lgui.
+	 * 
+	 * @param name
+	 *            the hash name identifying the new selected Lgui
+	 */
 	public void selectLgui(String name) {
 		if (name != null && fLguiItem != null && fLguiItem.getName().equals(name)) {
 			return;
@@ -236,29 +358,53 @@
 
 	}
 
+	/**
+	 * Select the object identified by <code>oid</code>.
+	 * This method is called, if an object is hovered over
+	 * with the cursor.
+	 * 
+	 * @param oid
+	 *            the LML object ID for the selected object
+	 */
 	public void selectObject(String oid) {
 		fireChangeSelectedObject(oid);
 	}
 
+	/**
+	 * A table sorting event is fired to all listeners.
+	 */
 	public void sortLgui() {
 		fireSortedLgui();
 	}
 
+	/**
+	 * Undo the marking of an object.
+	 * 
+	 * @param oid
+	 *            the LML object ID for the previously marked object
+	 */
 	public void unmarkObject(String oid) {
 		fireUnmarkObject(oid);
 	}
 
+	/**
+	 * Undo the selection of an object. E.g. the mouse has left the
+	 * area display the object.
+	 * 
+	 * @param oid
+	 *            the LML object ID for the previously selected object
+	 */
 	public void unselectObject(String oid) {
 		fireUnselectObject(oid);
 	}
 
 	/**
-	 * Run a refresh for one connection identified by name.
+	 * Run a refresh for one connection identified by <code>name</code>.
 	 * Sends the current LML layout to the passed output stream.
 	 * Expects an LML file as response from the input stream.
 	 * 
 	 * @param name
-	 *            Name of the ResourceManager
+	 *            the hash name identifying the new selected Lgui
 	 * @param input
 	 *            input stream attached to LML_DA for retrieving the updated LML file
 	 * @param output
@@ -291,7 +437,7 @@
 	 * server scripts.
 	 * 
 	 * @param name
-	 *            Name of the ResourceManager
+	 *            the hash name identifying the new selected Lgui
 	 * @param output
 	 *            stream, into which the current LML layout of the corresponding resource manager is written
 	 */
@@ -305,6 +451,19 @@
 		}
 	}
 
+	/**
+	 * Update the status of a user job. Besides the status attribute, the status detail
+	 * string can also be passed and set to the jobstatus.
+	 * 
+	 * @param name
+	 *            the hash name identifying the new selected Lgui
+	 * @param jobId
+	 *            the job ID, for which is status update is triggered
+	 * @param status
+	 *            the new status value, e.g. RUNNING, SUBMITTED, COMPLETED
+	 * @param detail
+	 *            a more detailed description of the job's status
+	 */
 	public void updateUserJob(String name, String jobId, String status, String detail) {
 		final ILguiItem lguiItem = LGUIS.get(name);
 		if (lguiItem != null) {
@@ -315,6 +474,12 @@
 		}
 	}
 
+	/**
+	 * Tells the listeners, that the object identified by oid is selected.
+	 * 
+	 * @param oid
+	 *            the LML object ID for the selected object
+	 */
 	private void fireChangeSelectedObject(String oid) {
 		final ISelectObjectEvent event = new SelectObjectEvent(oid);
 		for (final Object listener : viewListeners.getListeners()) {
@@ -322,6 +487,15 @@
 		}
 	}
 
+	/**
+	 * Tell the listeners that the table identified by gid has to be filtered
+	 * by the patterns.
+	 * 
+	 * @param gid
+	 *            table ID, which should be filtered
+	 * @param filterValues
+	 *            patterns for filtering the table
+	 */
 	private void fireFilterLgui(String gid, List<IPattern> filterValues) {
 		final ITableFilterEvent event = new TableFilterEvent(gid, filterValues);
 		for (final Object listener : viewListeners.getListeners()) {
@@ -329,6 +503,12 @@
 		}
 	}
 
+	/**
+	 * Tell the listeners, that the object identified by oid is to be marked.
+	 * 
+	 * @param oid
+	 *            the LML object ID for the marked object
+	 */
 	private void fireMarkObject(String oid) {
 		final IMarkObjectEvent event = new MarkObjectEvent(oid);
 		for (final Object listener : viewListeners.getListeners()) {
@@ -347,6 +527,12 @@
 		isDisplayed = true;
 	}
 
+	/**
+	 * Tell listeners, that an Lgui is removed.
+	 * 
+	 * @param title
+	 *            the removed Lgui
+	 */
 	private void fireRemovedLgui(ILguiItem title) {
 		final ILguiRemovedEvent event = new LguiRemovedEvent();
 		for (final Object listener : viewListeners.getListeners()) {
@@ -365,6 +551,12 @@
 		}
 	}
 
+	/**
+	 * Tell listeners, that an object's marking is undone.
+	 * 
+	 * @param oid
+	 *            the LML object ID for the previously marked object
+	 */
 	private void fireUnmarkObject(String oid) {
 		final IUnmarkObjectEvent event = new UnmarkObjectEvent(oid);
 		for (final Object listener : viewListeners.getListeners()) {
@@ -372,6 +564,12 @@
 		}
 	}
 
+	/**
+	 * Tell listeners, that an object's selection is undone.
+	 * 
+	 * @param oid
+	 *            the LML object ID for the previously selected object
+	 */
 	private void fireUnselectObject(String oid) {
 		final IUnselectedObjectEvent event = new UnselectObjectEvent(oid);
 		for (final Object listener : viewListeners.getListeners()) {
@@ -379,6 +577,9 @@
 		}
 	}
 
+	/**
+	 * Tell listeners, that a new LML file is received from LML_da.
+	 */
 	private void fireUpdatedLgui() {
 		final IViewUpdateEvent event = new ViewUpdateEvent();
 		for (final Object listener : viewListeners.getListeners()) {
@@ -387,10 +588,14 @@
 	}
 
 	/**
+	 * Forward stored jobs to the Lgui passed to this function.
+	 * This method is needed, when starting an Lgui in a subsequent
+	 * session.
 	 * 
-	 * @param map
-	 * @param memento
-	 *            may be <code>null</code>
+	 * @param item
+	 *            the Lgui, which should display the jobs
+	 * @param jobs
+	 *            list of stored jobs
 	 */
 	private void restoreJobStatusData(ILguiItem item, JobStatusData[] jobs) {
 		if (jobs != null && jobs.length > 0) {
diff --git a/rms/org.eclipse.ptp.rm.lml.core/src/org/eclipse/ptp/rm/lml/core/model/TableHandler.java b/rms/org.eclipse.ptp.rm.lml.core/src/org/eclipse/ptp/rm/lml/core/model/TableHandler.java
index 165f774..e4a2bce 100644
--- a/rms/org.eclipse.ptp.rm.lml.core/src/org/eclipse/ptp/rm/lml/core/model/TableHandler.java
+++ b/rms/org.eclipse.ptp.rm.lml.core/src/org/eclipse/ptp/rm/lml/core/model/TableHandler.java
@@ -21,7 +21,6 @@
 import java.util.Map;
 import java.util.Set;
 
-import org.eclipse.ptp.internal.rm.lml.core.LMLCorePlugin;
 import org.eclipse.ptp.internal.rm.lml.core.model.Pattern;
 import org.eclipse.ptp.internal.rm.lml.core.model.TableColumnLayout;
 import org.eclipse.ptp.internal.rm.lml.core.model.TableSorter;
@@ -384,7 +383,6 @@
 				return tag;
 			}
 		}
-		LMLCorePlugin.log(ILMLCoreConstants.LOG_NO_TABLE_1 + gid + ILMLCoreConstants.LOG_NO_TABLE_2);
 		return null;
 	}
 
diff --git a/rms/org.eclipse.ptp.rm.lml.da.server/.options b/rms/org.eclipse.ptp.rm.lml.da.server/.options
deleted file mode 100644
index 319f3a2..0000000
--- a/rms/org.eclipse.ptp.rm.lml.da.server/.options
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.ptp.rdt.server.dstore/debug/tracing=false
diff --git a/rms/org.eclipse.ptp.rm.lml.da.server/META-INF/MANIFEST.MF b/rms/org.eclipse.ptp.rm.lml.da.server/META-INF/MANIFEST.MF
index 30efb79..27339c0 100644
--- a/rms/org.eclipse.ptp.rm.lml.da.server/META-INF/MANIFEST.MF
+++ b/rms/org.eclipse.ptp.rm.lml.da.server/META-INF/MANIFEST.MF
@@ -7,7 +7,7 @@
 Bundle-Activator: org.eclipse.ptp.rm.lml.da.server.Activator
 Bundle-Vendor: %pluginProvider
 Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.ptp.remote.core,
+ org.eclipse.remote.core,
  org.eclipse.ptp.remote.server.core
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-ActivationPolicy: lazy
diff --git a/rms/org.eclipse.ptp.rm.lml.da.server/pom.xml b/rms/org.eclipse.ptp.rm.lml.da.server/pom.xml
index 265454e..b1dc638 100644
--- a/rms/org.eclipse.ptp.rm.lml.da.server/pom.xml
+++ b/rms/org.eclipse.ptp.rm.lml.da.server/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rms/org.eclipse.ptp.rm.lml.da/pom.xml b/rms/org.eclipse.ptp.rm.lml.da/pom.xml
index 4e59f24..e297860 100644
--- a/rms/org.eclipse.ptp.rm.lml.da/pom.xml
+++ b/rms/org.eclipse.ptp.rm.lml.da/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rms/org.eclipse.ptp.rm.lml.da/rms/MPICH2/start_debug_job.pl b/rms/org.eclipse.ptp.rm.lml.da/rms/MPICH2/start_debug_job.pl
new file mode 100644
index 0000000..a595e5e
--- /dev/null
+++ b/rms/org.eclipse.ptp.rm.lml.da/rms/MPICH2/start_debug_job.pl
@@ -0,0 +1,166 @@
+#!/usr/bin/perl -w
+#*******************************************************************************
+#* All rights reserved. This program and the accompanying materials
+#* are made available under the terms of the Eclipse Public License v1.0
+#* which accompanies this distribution, and is available at
+#* http://www.eclipse.org/legal/epl-v10.html
+#* 
+#* Contributors:
+#*     David Wootton - Initial implementation derived from start_job.pl
+#*******************************************************************************/ 
+use strict;
+use threads;
+use Text::ParseWords;
+use Cwd;
+# Use the perl Devel-GDB-2.02 or later package from cpan.org
+# The Devel::GDB module requires the perl Expect module to be installed.
+use Devel::GDB;
+
+my $portbase=50000;
+my $portrange=10000;
+my $ROUTING_FILE;
+my $ROUTING_PART;
+my $debuggerPath;
+my @debuggerArgs;
+my $gdb;
+my $sdmPid;
+my $mpiPid;
+
+#####################################################################
+#
+# Script to start the SDM and generate a routing table. 
+#
+# The routing table is called routes_<PTP_JOBID> and it is generated in 
+# the current working directory. The sdm's working directory must be
+# the same location if they are to find the table. Also, any old
+# routing tables should be removed before starting the sdm. 
+#
+# Routing table format is:
+#
+# num_tasks
+# task_num host_name port_num
+# ...
+#
+# where:
+# 	num_tasks is the total number of tasks in the MPI job
+#	task_num is the task number for a process (e.g. 0, 1, 2, etc.)
+#	host_name is the hostname of the node the process is running on
+#	port_num is a semi-random port number that the debugger will listen on
+#
+#####################################################################
+
+  # Send a SIGINT to gdb to interrupt it so MPIR_debug_state can be queried
+sub doInterrupt {
+       my @args = @_;
+       sleep 1;
+       kill "INT", $args[0];
+}
+
+  # Attempt to clean up all application processes when terminating
+sub terminate {
+       $gdb->end;
+       kill "INT", $sdmPid;
+       kill "INT", $mpiPid;
+       waitpid($sdmPid, 0);
+       waitpid($mpiPid, 0);
+       die "$_[0]";
+}
+
+if ($#ARGV < 1) {
+       die " Usage: $0 [mpi_args ...] [debugger_args ...]\n";
+}
+
+my $cmd = shift(@ARGV);
+my $args = join(" ", @ARGV);
+
+$debuggerPath = $ENV{'PTP_DEBUG_EXEC_PATH'};
+@debuggerArgs = shellwords($ENV{'PTP_DEBUG_EXEC_ARGS'});
+$ROUTING_FILE = getcwd() . "/routes_" . $ENV{'PTP_JOBID'};
+$ROUTING_PART = $ROUTING_FILE . ".part";
+push(@debuggerArgs, "--routing_file=$ROUTING_FILE");
+
+$sdmPid = fork();
+if ($sdmPid == 0) {
+        exec($debuggerPath, "--master", @debuggerArgs);
+        exit(1);
+}
+
+# Set autoflush to pass output as soon as possble
+$|=1;
+
+$mpiPid = fork();
+if ( $mpiPid == 0 ) {
+	printf("#PTP job_id=%d\n", $$);
+        exec($cmd, @ARGV, $debuggerPath, @debuggerArgs);
+        exit(1);
+}
+else {
+        my $value;
+        my $nTasks;
+        my $i;
+        my $response;
+
+        $gdb = new Devel::GDB('-params' => "$cmd $mpiPid",
+                              '-create-expect' => 1);
+          # gdb prints a bunch of messsages about debug symbols at startup.
+          # Issue a gdb command only to consume those messages.
+        $gdb->get("print 0");
+        $response = $gdb->get("print MPIR_debug_state");
+        if ($response =~ m/.*= (\d+).*/) {
+                $value = $1;
+        }
+        else {
+                terminate "Error reading MPIR_debug_state";
+        }
+          # When $value (MPIR_debug_state) = 1, task map is available
+        while ($value ne "1") {
+                my $intThread;
+
+                if ($value eq "2") {
+                        terminate "gdb terminating, exit";
+                }
+                  # Let gdb run briefly then interrupt it
+                $gdb->get("continue");
+                $intThread = threads->create("doInterrupt", $mpiPid);
+                $intThread->join();
+                $response = $gdb->get("print MPIR_debug_state");
+                if ($response =~ m/.*= (\d+).*/) {
+                        $value = $1;
+                }
+                else {
+                        terminate "Error reading MPIR_debug_state";
+                }
+        }
+         # Get application task count
+        $response = $gdb->get("print MPIR_proctable_size");
+        if ($response =~ m/.*= (\d+).*/) {
+                $nTasks = $1;
+        }
+        else {
+                terminate "Error reading MPIR_proctable_size";
+        }
+          # Write temporary routing file then rename it after file is complete
+  	open(OUT,"> $ROUTING_PART") ||
+             terminate "cannot open file $ROUTING_PART";
+  	printf(OUT "%d\n", $nTasks);
+        for ($i = 0; $i < $nTasks; $i++) {
+                my $host;
+
+                $response = $gdb->get("print MPIR_proctable[$i].host_name");
+                if ($response =~ m/.* = 0[xX][0-9a-fA-F]+ \"(.*)\".*/) {
+                        $host = $1;
+                }
+                else {
+                        terminate "Error reading MPIR_proctable";
+                }
+  	        printf(OUT 
+                      "%d %s %d\n", $i, $host, $portbase+int(rand($portrange)));
+        }
+  	close(OUT);
+        rename $ROUTING_PART, $ROUTING_FILE || 
+               terminate "Cannot rename $ROUTING_PART to $ROUTING_FILE";
+        $gdb->end;
+        waitpid($mpiPid, 0);
+}
+waitpid($sdmPid, 0);
+exit($? >> 8);
diff --git a/rms/org.eclipse.ptp.rm.lml.da/rms/MPICH2/start_job.pl b/rms/org.eclipse.ptp.rm.lml.da/rms/MPICH2/start_job.pl
index 4b45221..d63e43f 100644
--- a/rms/org.eclipse.ptp.rm.lml.da/rms/MPICH2/start_job.pl
+++ b/rms/org.eclipse.ptp.rm.lml.da/rms/MPICH2/start_job.pl
@@ -11,104 +11,12 @@
 #*******************************************************************************/ 
 use strict;
 
-my $patint="([\\+\\-\\d]+)";   # Pattern for Integer number
-my $patnode="([\^\\s]+(\\.[\^\\s]*)*)";       # Pattern for domain name (a.b.c)
-
-my $portbase=50000;
-my $portrange=10000;
-my $verbose=0;
-my $ROUTING_FILE="routing_file";
-my $TOTAL_PROCS=0;
-my @JOB;
-
-my $line;
-my $launchMode;
-my $debuggerId;
-my $pid;
-
-#####################################################################
-#
-# Script to start the SDM and generate a routing table. Used when the
-# ompi-ps command can't be used to obtain job information, such as
-# interactive launch via job scheduler.
-#
-# The routing table is called 'routing_file' and it is generated in 
-# the current working directory. The sdm's working directory must be
-# the same location if they are to find the table. Also, any old
-# routing tables should be removed before starting the sdm. 
-#
-# Routing table format is:
-#
-# num_tasks
-# task_num host_name port_num
-# ...
-#
-# where:
-# 	num_tasks is the total number of tasks in the MPI job
-#	task_num is the task number for a process (e.g. 0, 1, 2, etc.)
-#	host_name is the hostname of the node the process is running on
-#	port_num is a semi-random port number that the debugger will listen on
-#
-#####################################################################
-
-sub get_node_map {
-	my ($node) = @_;
-    my $rank;
-    my $line;
-	# find proc info
-	while ($line=<IN>) {
-	    if ($line=~/.*Process rank: $patint/) {
-	    	$rank = $1;
-			$JOB[$rank] = $node;
-			print "found proc $rank\n" if ($verbose);
-	    } elsif ($line =~ /^$/) {
-	    	print "found end of node map\n" if ($verbose);
-	    	return;
-	    }
-	}
-}
-
-sub get_job_map {
-    my $node;
-    my $rank;
-    my $line;
-	# find node/proc info
-	while ($line=<IN>) {
-		if ($line=~/\s*\*+\s*/) {
-			next;
-		} elsif ($line=~/\s*\[$patint\] proxy: $patnode/) {
-			($node,$rank) = ($2, $1);
-			print "found node $node, rank $rank\n" if ($verbose);
-			$TOTAL_PROCS++;
-			$JOB[$rank-1] = $node;
-		} elsif ($line =~ /^=+$/) {
-			print "found end of table\n" if ($verbose);
-			return;
-		}
-	}
-}
-
-sub generate_routing_file {
-	open(OUT,"> $ROUTING_FILE") || die "cannot open file $ROUTING_FILE";
-	printf(OUT "%d\n", $TOTAL_PROCS);
-	for (my $count=0; $count < $TOTAL_PROCS; $count++) {
-	    printf(OUT "%d %s %d\n",$count,$JOB[$count],$portbase+int(rand($portrange)));
-	}
-	close(OUT);
-}
-
-$launchMode = $ENV{'PTP_LAUNCH_MODE'};
-$debuggerId = $ENV{'PTP_DEBUGGER_ID'};
-
 if ($#ARGV < 1) {
   die " Usage: $0 [mpi_args ...] [debugger_args ...]\n";
 }
+
+my $pid;
 my $cmd = shift(@ARGV);
-my $args = join(" ", @ARGV);
-if ($launchMode eq 'debug') {
-	$cmd .= " -verbose";
-}
-print "running command $cmd $args\n" if ($verbose);
 
 # Set autoflush to pass output as soon as possble
 $|=1;
@@ -116,25 +24,8 @@
 $pid = fork();
 if ( $pid == 0 ) {
 	printf("#PTP job_id=%d\n", $$);
-	if ($launchMode eq 'debug') {
-		if (open(IN,"$cmd $args 2>&1 |")) {
-		    while ($line=<IN>) {
-				chomp($line);
-				if ($line=~/\s*Proxy information:\s*/) {
-					print "found job map\n" if ($verbose);
-					get_job_map();
-					generate_routing_file();
-				} else {
-					print "$line\n";
-				}
-		    }
-		    close(IN);
-		} 
-		exit(0);
-	} else {
-		exec($cmd, @ARGV);
-		exit(1);
-	}
+	exec($cmd, @ARGV);
+	exit(1);
 }
 
 waitpid($pid, 0);
diff --git a/rms/org.eclipse.ptp.rm.lml.monitor.core/META-INF/MANIFEST.MF b/rms/org.eclipse.ptp.rm.lml.monitor.core/META-INF/MANIFEST.MF
index 34de54c..f270133 100644
--- a/rms/org.eclipse.ptp.rm.lml.monitor.core/META-INF/MANIFEST.MF
+++ b/rms/org.eclipse.ptp.rm.lml.monitor.core/META-INF/MANIFEST.MF
@@ -9,7 +9,7 @@
  org.eclipse.debug.core,
  org.eclipse.core.filesystem,
  org.eclipse.ptp.core,
- org.eclipse.ptp.remote.core,
+ org.eclipse.remote.core,
  org.eclipse.ptp.remote.server.core,
  org.eclipse.ptp.rm.lml.da.server,
  org.eclipse.ptp.rm.lml.core,
diff --git a/rms/org.eclipse.ptp.rm.lml.monitor.core/pom.xml b/rms/org.eclipse.ptp.rm.lml.monitor.core/pom.xml
index ced3370..4b420d1 100644
--- a/rms/org.eclipse.ptp.rm.lml.monitor.core/pom.xml
+++ b/rms/org.eclipse.ptp.rm.lml.monitor.core/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rms/org.eclipse.ptp.rm.lml.monitor.core/src/org/eclipse/ptp/internal/rm/lml/monitor/core/MonitorControl.java b/rms/org.eclipse.ptp.rm.lml.monitor.core/src/org/eclipse/ptp/internal/rm/lml/monitor/core/MonitorControl.java
index 4234d2f..a2a4fe6 100644
--- a/rms/org.eclipse.ptp.rm.lml.monitor.core/src/org/eclipse/ptp/internal/rm/lml/monitor/core/MonitorControl.java
+++ b/rms/org.eclipse.ptp.rm.lml.monitor.core/src/org/eclipse/ptp/internal/rm/lml/monitor/core/MonitorControl.java
@@ -33,12 +33,6 @@
 import org.eclipse.ptp.core.jobs.JobManager;
 import org.eclipse.ptp.core.util.CoreExceptionUtils;
 import org.eclipse.ptp.internal.rm.lml.monitor.core.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServicesUtils;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
 import org.eclipse.ptp.remote.server.core.RemoteServerManager;
 import org.eclipse.ptp.rm.jaxb.control.core.ILaunchController;
 import org.eclipse.ptp.rm.jaxb.control.core.LaunchControllerManager;
@@ -53,6 +47,12 @@
 import org.eclipse.ptp.rm.lml.da.server.core.LMLDAServer;
 import org.eclipse.ptp.rm.lml.monitor.core.IMonitorControl;
 import org.eclipse.ptp.rm.lml.monitor.core.MonitorControlManager;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnectionManager;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.RemoteServices;
+import org.eclipse.remote.core.RemoteServicesUtils;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
 import org.eclipse.ui.IMemento;
 import org.eclipse.ui.XMLMemento;
 
@@ -101,14 +101,14 @@
 				fServer.startServer(subMon.newChild(20));
 				if (!subMon.isCanceled()) {
 					fServer.waitForServerStart(subMon.newChild(20));
-					if (!subMon.isCanceled()) {
+					if (!subMon.isCanceled() && fServer.serverIsRunning()) {
 						LMLManager.getInstance().update(getControlId(), fServer.getInputStream(), fServer.getOutputStream());
 					}
 				}
 			} catch (final Exception e) {
 				fActive = false;
 				MonitorControlManager.getInstance().fireMonitorUpdated(new IMonitorControl[] { MonitorControl.this });
-				return new Status(IStatus.ERROR, LMLMonitorCorePlugin.PLUGIN_ID, e.getLocalizedMessage());
+				return new Status(IStatus.ERROR, LMLMonitorCorePlugin.PLUGIN_ID, e.getLocalizedMessage(), e);
 			}
 			IStatus status = fServer.waitForServerFinish(subMon.newChild(40));
 			if (status == Status.OK_STATUS) {
@@ -542,6 +542,12 @@
 				}
 			}
 
+			if (fSavedLayout == null) {
+				// Load default layout from RMS configuration
+				fSavedLayout = MonitorControlManager.getSystemLayout(fConfigurationName);
+				// This might still be null or could contain the default layout configured in the RMS configuration
+			}
+
 			/*
 			 * Check status of output files for jobs
 			 */
@@ -612,4 +618,4 @@
 			}
 		}
 	}
-}
\ No newline at end of file
+}
diff --git a/rms/org.eclipse.ptp.rm.lml.monitor.core/src/org/eclipse/ptp/rm/lml/monitor/core/MonitorControlManager.java b/rms/org.eclipse.ptp.rm.lml.monitor.core/src/org/eclipse/ptp/rm/lml/monitor/core/MonitorControlManager.java
index 66dc046..b37bb7e 100644
--- a/rms/org.eclipse.ptp.rm.lml.monitor.core/src/org/eclipse/ptp/rm/lml/monitor/core/MonitorControlManager.java
+++ b/rms/org.eclipse.ptp.rm.lml.monitor.core/src/org/eclipse/ptp/rm/lml/monitor/core/MonitorControlManager.java
@@ -14,6 +14,7 @@
 import java.io.FileReader;
 import java.io.FileWriter;
 import java.io.IOException;
+import java.io.StringWriter;
 import java.net.URL;
 import java.util.Collection;
 import java.util.Collections;
@@ -24,6 +25,12 @@
 import java.util.TreeMap;
 import java.util.TreeSet;
 
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+import javax.xml.namespace.QName;
+
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
@@ -41,6 +48,7 @@
 import org.eclipse.ptp.rm.jaxb.control.core.LaunchControllerManager;
 import org.eclipse.ptp.rm.jaxb.core.data.MonitorType;
 import org.eclipse.ptp.rm.jaxb.core.data.ResourceManagerData;
+import org.eclipse.ptp.rm.jaxb.core.data.lml.LayoutRoot;
 import org.eclipse.ptp.rm.lml.core.LMLManager;
 import org.eclipse.ptp.rm.lml.monitor.core.listeners.IMonitorChangedListener;
 import org.eclipse.ptp.rm.lml.monitor.core.listeners.IMonitorRefreshListener;
@@ -57,7 +65,15 @@
 	private static final String MONITORS_SAVED_STATE = "monitors.xml";//$NON-NLS-1$
 	private static final String MONITORS_ATTR = "monitors";//$NON-NLS-1$
 	private static final String MONITOR_ID_ATTR = "monitor";//$NON-NLS-1$
+	private static final String RMXSDJAXBPackage = "org.eclipse.ptp.rm.jaxb.core.data"; //$NON-NLS-1$
+	private static final String LMLNamespace = "http://eclipse.org/ptp/lml"; //$NON-NLS-1$
+	private static final String LMLPrefix = "lml"; //$NON-NLS-1$
+	private static final String LocalPartOfLMLLayout = "layout"; //$NON-NLS-1$
 	private static Map<String, String> fSystemTypesByConfigName = new TreeMap<String, String>();
+	/**
+	 * Stores default layout for each config name, if available
+	 */
+	private static Map<String, String> fSystemLayoutByConfigName = new TreeMap<String, String>();
 
 	public static String generateMonitorId(String remoteServicesId, String connectionName, String monitorType) {
 		return LaunchControllerManager.generateControlId(remoteServicesId, connectionName, monitorType);
@@ -72,6 +88,21 @@
 		return fSystemTypesByConfigName.get(configName);
 	}
 
+	/**
+	 * Retrieve the default layout string for the given RMS configuration name.
+	 * If there is no default layout specified, return null.
+	 * This layout can be sent as request to LML_DA. It represents a stand-alone
+	 * LML layout instance.
+	 * 
+	 * @param configName
+	 *            name of the RMS configuration such as
+	 * @return the xml layout for this configuration or null, if there is no layout defined
+	 */
+	public static String getSystemLayout(String configName) {
+		loadSystemLayouts();
+		return fSystemLayoutByConfigName.get(configName);
+	}
+
 	public static String[] getConfigurationNames() {
 		loadSystemTypes();
 		Set<String> set = new TreeSet<String>();
@@ -102,6 +133,51 @@
 		}
 	}
 
+	/**
+	 * Gets all extensions to the monitors extension point and loads their names
+	 * and default layouts. Stores them in the map fSystemLayoutByConfigName.
+	 */
+	private static void loadSystemLayouts() {
+		String[] configNames = JAXBExtensionUtils.getConfiguationNames();
+		// Use JAXB marshaller to convert JAXB object back to XML data, which is sent to LML_DA
+		JAXBContext jaxbContext;
+		try {
+			jaxbContext = JAXBContext.newInstance(RMXSDJAXBPackage);
+		} catch (JAXBException e1) {
+			e1.printStackTrace();
+			return;
+		}
+
+		Marshaller marshaller;
+		try {
+			marshaller = jaxbContext.createMarshaller();
+		} catch (JAXBException e1) {
+			e1.printStackTrace();
+			return;
+		}
+
+		for (String name : configNames) {
+			URL url = JAXBExtensionUtils.getConfigurationURL(name);
+			try {
+				ResourceManagerData data = JAXBInitializationUtils.initializeRMData(url);
+				MonitorType monitorType = data.getMonitorData();
+				if (monitorType != null) {
+					// Check if there is a layout existant
+					if (monitorType.getLayout() != null) {
+						final StringWriter sw = new StringWriter();
+						QName qname = new QName(LMLNamespace, LocalPartOfLMLLayout, LMLPrefix);
+						JAXBElement<LayoutRoot> jaxbEl = new JAXBElement<LayoutRoot>(qname, LayoutRoot.class,
+								monitorType.getLayout());
+						marshaller.marshal(jaxbEl, sw);
+						fSystemLayoutByConfigName.put(name, sw.toString());
+					}
+				}
+			} catch (Exception e) {
+				// Ignore
+			}
+		}
+	}
+
 	private final Map<String, IMonitorControl> fMonitorControls = Collections
 			.synchronizedMap(new HashMap<String, IMonitorControl>());
 	private final Set<IMonitorControl> fMonitorControlsToStart = new HashSet<IMonitorControl>();
diff --git a/rms/org.eclipse.ptp.rm.lml.monitor.ui/META-INF/MANIFEST.MF b/rms/org.eclipse.ptp.rm.lml.monitor.ui/META-INF/MANIFEST.MF
index 6d82190..d81f2c5 100644
--- a/rms/org.eclipse.ptp.rm.lml.monitor.ui/META-INF/MANIFEST.MF
+++ b/rms/org.eclipse.ptp.rm.lml.monitor.ui/META-INF/MANIFEST.MF
@@ -10,8 +10,8 @@
  org.eclipse.ui,
  org.eclipse.ui.console,
  org.eclipse.ptp.core,
- org.eclipse.ptp.remote.core,
- org.eclipse.ptp.remote.ui,
+ org.eclipse.remote.core,
+ org.eclipse.remote.ui,
  org.eclipse.ptp.rm.jaxb.core,
  org.eclipse.ptp.rm.jaxb.control.core,
  org.eclipse.ptp.rm.lml.monitor.core,
diff --git a/rms/org.eclipse.ptp.rm.lml.monitor.ui/plugin.xml b/rms/org.eclipse.ptp.rm.lml.monitor.ui/plugin.xml
index b3d736b..4400561 100644
--- a/rms/org.eclipse.ptp.rm.lml.monitor.ui/plugin.xml
+++ b/rms/org.eclipse.ptp.rm.lml.monitor.ui/plugin.xml
@@ -122,16 +122,10 @@
             class="org.eclipse.ptp.internal.rm.lml.monitor.ui.handlers.RemoveMonitorHandler"
             commandId="org.eclipse.ptp.rm.lml.monitor.ui.removeMonitor">
          <enabledWhen>
-            <with
-                  variable="selection">
-               <iterate
-                     ifEmpty="false">
-                  <test
-                        property="org.eclipse.ptp.rm.monitor.isActive"
-                        value="false">
-                  </test>
-               </iterate>
-            </with>
+            <test
+                  property="org.eclipse.ptp.rm.monitor.isActive"
+                  value="false">
+            </test>
          </enabledWhen>
       </handler>
       <handler
@@ -140,13 +134,10 @@
          <enabledWhen>
             <with
                   variable="selection">
-               <iterate
-                     ifEmpty="false">
-                  <test
-                        property="org.eclipse.ptp.rm.monitor.isActive"
-                        value="false">
-                  </test>
-               </iterate>
+               <test
+                     property="org.eclipse.ptp.rm.monitor.isActive"
+                     value="false">
+               </test>
             </with>
          </enabledWhen>
       </handler>
@@ -154,32 +145,20 @@
             class="org.eclipse.ptp.internal.rm.lml.monitor.ui.handlers.StopMonitorHandler"
             commandId="org.eclipse.ptp.rm.lml.monitor.ui.stopMonitor">
          <enabledWhen>
-            <with
-                  variable="selection">
-               <iterate
-                     ifEmpty="false">
-                  <test
-                        property="org.eclipse.ptp.rm.monitor.isActive"
-                        value="true">
-                  </test>
-               </iterate>
-            </with>
+            <test
+                  property="org.eclipse.ptp.rm.monitor.isActive"
+                  value="true">
+            </test>
          </enabledWhen>
       </handler>
       <handler
             class="org.eclipse.ptp.internal.rm.lml.monitor.ui.handlers.RefreshMonitorHandler"
             commandId="org.eclipse.ptp.rm.lml.monitor.ui.refreshMonitor">
          <enabledWhen>
-            <with
-                  variable="selection">
-               <iterate
-                     ifEmpty="false">
-                  <test
-                        property="org.eclipse.ptp.rm.monitor.isActive"
-                        value="true">
-                  </test>
-               </iterate>
-            </with>
+            <test
+                  property="org.eclipse.ptp.rm.monitor.isActive"
+                  value="true">
+            </test>
          </enabledWhen>
       </handler>
    </extension>
diff --git a/rms/org.eclipse.ptp.rm.lml.monitor.ui/pom.xml b/rms/org.eclipse.ptp.rm.lml.monitor.ui/pom.xml
index d44540a..327ba3f 100644
--- a/rms/org.eclipse.ptp.rm.lml.monitor.ui/pom.xml
+++ b/rms/org.eclipse.ptp.rm.lml.monitor.ui/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rms/org.eclipse.ptp.rm.lml.monitor.ui/src/org/eclipse/ptp/internal/rm/lml/monitor/ui/dialogs/AddMonitorDialog.java b/rms/org.eclipse.ptp.rm.lml.monitor.ui/src/org/eclipse/ptp/internal/rm/lml/monitor/ui/dialogs/AddMonitorDialog.java
index 3ea1d82..acade8a 100644
--- a/rms/org.eclipse.ptp.rm.lml.monitor.ui/src/org/eclipse/ptp/internal/rm/lml/monitor/ui/dialogs/AddMonitorDialog.java
+++ b/rms/org.eclipse.ptp.rm.lml.monitor.ui/src/org/eclipse/ptp/internal/rm/lml/monitor/ui/dialogs/AddMonitorDialog.java
@@ -15,10 +15,10 @@
 import org.eclipse.jface.dialogs.IDialogConstants;
 import org.eclipse.jface.dialogs.TitleAreaDialog;
 import org.eclipse.ptp.internal.rm.lml.monitor.ui.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.ui.widgets.RemoteConnectionWidget;
 import org.eclipse.ptp.rm.jaxb.control.core.LaunchControllerManager;
 import org.eclipse.ptp.rm.lml.monitor.core.MonitorControlManager;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.ui.widgets.RemoteConnectionWidget;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
@@ -132,7 +132,7 @@
 			}
 		});
 
-		fRemoteConnectionWidget = new RemoteConnectionWidget(composite, SWT.NONE, Messages.AddMonitorDialog_Connection_Type, 0, null);
+		fRemoteConnectionWidget = new RemoteConnectionWidget(composite, SWT.NONE, Messages.AddMonitorDialog_Connection_Type, 0);
 		fRemoteConnectionWidget.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
 		fRemoteConnectionWidget.addSelectionListener(new SelectionAdapter() {
 			@Override
diff --git a/rms/org.eclipse.ptp.rm.lml.monitor.ui/src/org/eclipse/ptp/internal/rm/lml/monitor/ui/handlers/ActionUtils.java b/rms/org.eclipse.ptp.rm.lml.monitor.ui/src/org/eclipse/ptp/internal/rm/lml/monitor/ui/handlers/ActionUtils.java
index 68fec36..c1f0955 100644
--- a/rms/org.eclipse.ptp.rm.lml.monitor.ui/src/org/eclipse/ptp/internal/rm/lml/monitor/ui/handlers/ActionUtils.java
+++ b/rms/org.eclipse.ptp.rm.lml.monitor.ui/src/org/eclipse/ptp/internal/rm/lml/monitor/ui/handlers/ActionUtils.java
@@ -24,13 +24,13 @@
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.ptp.core.util.CoreExceptionUtils;
 import org.eclipse.ptp.internal.rm.lml.monitor.ui.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServicesUtils;
 import org.eclipse.ptp.rm.jaxb.control.core.ILaunchController;
 import org.eclipse.ptp.rm.jaxb.control.core.LaunchControllerManager;
 import org.eclipse.ptp.rm.lml.core.JobStatusData;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.RemoteServices;
+import org.eclipse.remote.core.RemoteServicesUtils;
 import org.eclipse.ui.console.ConsolePlugin;
 import org.eclipse.ui.console.IConsole;
 import org.eclipse.ui.console.IOConsole;
diff --git a/rms/org.eclipse.ptp.rm.lml.monitor.ui/src/org/eclipse/ptp/internal/rm/lml/monitor/ui/propertyTesters/MonitorPropertyTester.java b/rms/org.eclipse.ptp.rm.lml.monitor.ui/src/org/eclipse/ptp/internal/rm/lml/monitor/ui/propertyTesters/MonitorPropertyTester.java
index 10cfcbd..56633be 100644
--- a/rms/org.eclipse.ptp.rm.lml.monitor.ui/src/org/eclipse/ptp/internal/rm/lml/monitor/ui/propertyTesters/MonitorPropertyTester.java
+++ b/rms/org.eclipse.ptp.rm.lml.monitor.ui/src/org/eclipse/ptp/internal/rm/lml/monitor/ui/propertyTesters/MonitorPropertyTester.java
@@ -11,6 +11,9 @@
 package org.eclipse.ptp.internal.rm.lml.monitor.ui.propertyTesters;
 
 import org.eclipse.core.expressions.PropertyTester;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.ptp.rm.lml.monitor.core.IMonitorControl;
 import org.eclipse.ptp.rm.lml.monitor.core.MonitorControlManager;
 import org.eclipse.ptp.rm.lml.monitor.core.listeners.IMonitorChangedListener;
@@ -22,6 +25,11 @@
 	private static final String NAMESPACE = "org.eclipse.ptp.rm.monitor"; //$NON-NLS-1$
 	private static final String IS_ACTIVE = "isActive"; //$NON-NLS-1$
 
+	/**
+	 * Id of the currently selected monitor instance or null, if none is selected.
+	 */
+	private String selectedMonitorId = null;
+
 	public MonitorPropertyTester() {
 		MonitorControlManager.getInstance().addMonitorChangedListener(new IMonitorChangedListener() {
 			@Override
@@ -45,6 +53,21 @@
 				}
 			}
 		});
+
+		MonitorControlManager.getInstance().addSelectionChangedListener(new ISelectionChangedListener() {
+
+			@Override
+			public void selectionChanged(SelectionChangedEvent event) {
+				// Keep track of the currently selected monitor directly within the property tester
+				selectedMonitorId = null;
+				if (event.getSelection() instanceof IStructuredSelection) {
+					IStructuredSelection sel = (IStructuredSelection) event.getSelection();
+					if (!sel.isEmpty()) {
+						selectedMonitorId = ((IMonitorControl) sel.getFirstElement()).getControlId();
+					}
+				}
+			}
+		});
 	}
 
 	/*
@@ -55,12 +78,20 @@
 	 */
 	@Override
 	public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
+
+		IMonitorControl monitor = null;
+
 		if (receiver instanceof IMonitorControl) {
-			IMonitorControl monitor = (IMonitorControl) receiver;
-			if (IS_ACTIVE.equals(property)) {
-				return monitor.isActive() == toBoolean(expectedValue);
-			}
+			monitor = (IMonitorControl) receiver;
+		} else if (selectedMonitorId != null) {
+			// Try to use the selected monitor, if the receiver is not directly a IMonitorControl instance
+			monitor = MonitorControlManager.getInstance().getMonitorControl(selectedMonitorId);
 		}
+
+		if (monitor != null && IS_ACTIVE.equals(property)) {
+			return monitor.isActive() == toBoolean(expectedValue);
+		}
+
 		return false;
 	}
 
diff --git a/rms/org.eclipse.ptp.rm.lml.ui/pom.xml b/rms/org.eclipse.ptp.rm.lml.ui/pom.xml
index 787b3c8..45e95fe 100644
--- a/rms/org.eclipse.ptp.rm.lml.ui/pom.xml
+++ b/rms/org.eclipse.ptp.rm.lml.ui/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/rms/org.eclipse.ptp.rm.slurm.help/pom.xml b/rms/org.eclipse.ptp.rm.slurm.help/pom.xml
index dcb962b..d607231 100644
--- a/rms/org.eclipse.ptp.rm.slurm.help/pom.xml
+++ b/rms/org.eclipse.ptp.rm.slurm.help/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/cdt/org.eclipse.ptp.cdt.compilers.core/pom.xml b/tools/cdt/org.eclipse.ptp.cdt.compilers.core/pom.xml
index b5a703c..21ac186 100644
--- a/tools/cdt/org.eclipse.ptp.cdt.compilers.core/pom.xml
+++ b/tools/cdt/org.eclipse.ptp.cdt.compilers.core/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/etfw/org.eclipse.ptp.etfw.doc.user/pom.xml b/tools/etfw/org.eclipse.ptp.etfw.doc.user/pom.xml
index 39a67df..8c0cd7a 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.doc.user/pom.xml
+++ b/tools/etfw/org.eclipse.ptp.etfw.doc.user/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/etfw/org.eclipse.ptp.etfw.doc.user/toc.xml b/tools/etfw/org.eclipse.ptp.etfw.doc.user/toc.xml
index c628bb9..f2243b3 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.doc.user/toc.xml
+++ b/tools/etfw/org.eclipse.ptp.etfw.doc.user/toc.xml
@@ -8,4 +8,5 @@
 	</topic>
  <topic href="html/feedback.html" label="Feedback View">
  </topic>
+ <anchor id="etfw-other"/>
 </toc>
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/.project b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/.project
new file mode 100644
index 0000000..01e2b37
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.ptp.etfw.feedback.perfsuite.doc.user</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/META-INF/MANIFEST.MF b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..83f2a4a
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/META-INF/MANIFEST.MF
@@ -0,0 +1,6 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.ptp.etfw.feedback.perfsuite.doc.user; singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: %pluginProvider
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/about.html b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/about.html
new file mode 100644
index 0000000..4db6b1b
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/about.html
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<html>
+<head>
+<title>About</title>
+<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>May 29, 2013</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in
+(&quot;Content&quot;).  Unless otherwise indicated below, the Content
+is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL
+is available at
+<a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the
+Eclipse Foundation, the Content is being redistributed by another party
+(&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the
+Redistributor's license that was provided with the Content.  If no such
+license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any
+source code in the Content and such source code may be obtained at
+<a href="http://www.eclipse.org">http://www.eclipse.org.</p>
+
+</body>
+</html>
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/build.properties b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/build.properties
new file mode 100644
index 0000000..3c05d07
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/build.properties
@@ -0,0 +1,4 @@
+bin.includes = plugin.xml,\
+               META-INF/,\
+               html/,\
+               *.xml
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/help.css b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/help.css
new file mode 100644
index 0000000..f34a23d
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/help.css
@@ -0,0 +1,51 @@
+/* following font face declarations need to be removed for DBCS */
+
+
+body, h1, h2, h3, h4, p, table, td, caption, th, ul, ol, dl, li, dd, dt {font-family: Arial, sans-serif; color: #000000}
+pre				{ font-family: Courier, monospace}
+
+/* end font face declarations */
+
+/* following font size declarations should be OK for DBCS */
+body, h1, h2, h3, h4, p, table, td, caption, th, ul, ol, dl, li, dd, dt {font-size: 10pt; }
+pre				{ font-size: 10pt}
+
+/* end font size declarations */
+
+body	     { background: #FFFFFF}
+h1           { font-size: 18pt; margin-top: 5; margin-bottom: 1 }	
+h2           { font-size: 14pt; margin-top: 25; margin-bottom: 3 }
+h3           { font-size: 11pt; margin-top: 20; margin-bottom: 3 }
+h4           { font-size: 10pt; margin-top: 20; margin-bottom: 3; font-style: italic }
+p 	     { font-size: 10pt; }
+pre	     { margin-left: 6; font-size: 9pt }
+
+a:link { color: #006699 }
+a:visited { color: #996699 }
+a:hover  { color: #006699 }
+
+ul	     { margin-top: 0; margin-bottom: 10 }
+li	     { margin-top: 0; margin-bottom: 0 } 
+li p	     { margin-top: 0; margin-bottom: 0 } 
+ol	     { margin-top: 0; margin-bottom: 10 }
+dl	     { margin-top: 0; margin-bottom: 10 }
+dt	     { margin-top: 0; margin-bottom: 0; font-weight: bold }
+dd	     { margin-top: 0; margin-bottom: 0 }
+strong	     { font-weight: bold}
+em	     { font-style: italic}
+var	     { font-style: italic}
+div.revision { border-left-style: solid; border-left-width: thin; 
+				   border-left-color: #7B68EE; padding-left:5 }
+th	     { font-weight: bold }
+
+/* Mike Behm's addition to the style sheet */
+.userinput { font-family: monospace; }
+.guitab, .important, .guibutton, .selectblue, .guimenu, .guilabel, 
+.notetitle  {
+     color: #000000;
+     font-family: helvetica, arial, sans-serif;
+     font-weight: bold;
+     }
+div.linux  {display:none;}
+.firsterm {font-style:italic;}
+
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/context-menu.png b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/context-menu.png
new file mode 100644
index 0000000..14506c4
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/context-menu.png
Binary files differ
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/double-clicked.png b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/double-clicked.png
new file mode 100644
index 0000000..c403332
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/double-clicked.png
Binary files differ
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/expandall.gif b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/expandall.gif
new file mode 100644
index 0000000..c4a67bb
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/expandall.gif
Binary files differ
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/feedback_action.gif b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/feedback_action.gif
new file mode 100644
index 0000000..c8bd499
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/feedback_action.gif
Binary files differ
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/feedback_view.gif b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/feedback_view.gif
new file mode 100644
index 0000000..c8bd499
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/feedback_view.gif
Binary files differ
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/overview-ruler.png b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/overview-ruler.png
new file mode 100644
index 0000000..068caac
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/overview-ruler.png
Binary files differ
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/prefs.png b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/prefs.png
new file mode 100644
index 0000000..e881883
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/prefs.png
Binary files differ
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/result-view.png b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/result-view.png
new file mode 100644
index 0000000..61e8544
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/result-view.png
Binary files differ
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/show-view.png b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/show-view.png
new file mode 100644
index 0000000..9a4b8f7
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/images/show-view.png
Binary files differ
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/perfsuite-feedback-view.html b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/perfsuite-feedback-view.html
new file mode 100644
index 0000000..75660a3
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/html/perfsuite-feedback-view.html
@@ -0,0 +1,177 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+	<title>PTP ETFw PerfSuite Feedback View</title>
+	<link rel="stylesheet" type="text/css" href="help.css">
+</head>
+
+<body>
+<h1 id="top"><img src="images/feedback_view.gif">PTP ETFw PerfSuite Feedback View</h1>
+<h2>Overview</h2>
+
+<p>
+PerfSuite is a collection of tools and libraries
+for software performance analysis on Linux-based systems.
+It supports counting and profiling using CPU and other (such as network, thermal)
+hardware performance counters, and interval timer profiling.
+
+<p>
+The Parallel Tools Platform External Tools Framework Feedback View
+(PTP ETFw Feedback View)
+provides a convenient
+way to use the file name and line number information contained in an XML file
+to allow a user to easily navigate to the lines in the files.
+
+<p>The PTP ETFw PerfSuite Feedback View plug-in is based on the above 
+feature.
+Specifically, it provides an Eclipse view, exposing information found
+in an XML file
+of the type "multihwpcprofilereport" -- a specific type of XML file that
+PerfSuite generates --
+with convenient mapping and navigation to source lines referenced in the XML file.
+With this, a user may find it easier to correlate the source code with the
+information contained in the
+XML file -- the hot spots, where the most samples are collected during a previous
+run.
+</p>
+
+<h2>Instructions</h2>
+<p>
+
+<ol>
+<li>Either use tools inside Eclipse such as PTP ETFw, or use tools outside Eclipse such as
+on the command line, to perform PerfSuite runs to measure and analyze the results, and
+create a file of the type "multihwpcprofilereport".  One way to create such files
+is to run "psrun &lt;options&gt; myprog myargs" with a profiling configuration file
+to profile the program, then run "psprocess -x -o mhpr.xml myprog.*.xml" to do the
+source code mapping and combine the results of multiple processes/threads into
+one file "mhpr.xml".
+<li>Select the file "mhpr.xml" in the Project Explorer view.
+<li>Click the mouse's right button and select the menu item "Display PerfSuite Feedback",
+or type the keyboard shortcut CTRL-7.
+The PerfSuite Feedback View Plugin parses the xml file, creates markers that are associated
+with the source code files, and create a feedback view with line items which are associated
+with the markers.
+
+<p>
+The line items are initially all collapsed. You can click on the triangle symbol in front of
+the individual parent nodes to expand them, or use the
+"Expand All" button (<img src="images/expandall.gif"></img>) in the view's toolbar.
+
+<p>
+The line items are grouped by the files.
+The format of the section is "&lt;hostname&gt;-PID_&lt;pid&gt;-thread_&lt;threadid&gt;".
+In an MPI run, the thread IDs are all 0s,
+but the PIDs are different.  In a pure OpenMP run, the PIDs will be the same, and the
+thread IDs will be different numbers instead of all 0s.
+<p>
+<li>To see the source file line referred to by a line item, double-click on the line in the Feedback
+view.  The Eclipse editor window will load the source file if it's not loaded or bring it to front
+if it is loaded, and the cursor/focus goes to the line number referred in the line item.
+<p>
+<p>
+The line items are sorted in the order from the most samples to the least.  Since the line items
+must have associated markers, which in turn associate with the files inside of the Eclipse work space,
+for the files which PerfSuite's psrun collected samples from but are not inside of the Eclipse
+work space, the line items will not appear in the view.  This typically happens for the
+shared libraries used by the program.
+
+<li>You can double-click on the line items one by one to review the hot spots in the file,
+or navigate by clicking the markers in the overview ruler of the text editor window, which is
+vertical space at the far right side of the editor window.
+</ol>
+
+
+<h2>Examples</h2>
+<p>
+
+<ol>
+<li>In this example, we created a Makefile MPI C project named "testfeedback" inside of Eclipse.
+We have both MPI and
+PerfSuite installed on the machine.  Inside of Eclipse, we used the makefile to drive the process
+of building the program, running the program with PerfSuite, and post-processing the result, and
+created a PerfSuite "multihwpcprofile" report. 
+The following is the content of the Makefile:
+<pre>
+SHELL=/bin/bash
+all: build run process
+
+build:
+	mpicc -g -O2 -o testfeedback testfeedback.c
+
+run:
+	source /home/ruiliu/tmp/nightly-test/perfsuite-install/bin/psenv.sh; \
+	mpirun -np 4 /home/ruiliu/tmp/nightly-test/perfsuite-install/bin/psrun -f -C -c papi_profile_cycles.xml ./testfeedback
+
+process:
+	/home/ruiliu/tmp/nightly-test/perfsuite-install/bin/psprocess -x -o mhpr.xml testfeedback.*.xml
+
+clean:
+	rm -rf testfeedback mhpr.xml testfeedback.*.xml
+</pre>
+
+We selected the menu item "Project -> Clean", followed by "Project -> Build All".
+After that, the "testfeedback" program was built, run with "psrun", and the generated
+"testfeedback.*.xml" files were processed by "psprocess" and combined into "mhpr.xml".
+
+<li>We selected the file "mhpr.xml" in the Project Explorer view.
+<li>We typed "CTRL-7", and the plug-in created a new view.  We then clicked the "Expand All"
+button to see the line items.  The line items are grouped by the files.
+The format is "&lt;hostname&gt;-PID_&lt;pid&gt;-thread_&lt;threadid&gt;".
+In the case of the first one "Amituofo-PID_8950-thread_0", the host name is "Amituofo".
+Since it's an MPI run, the thread IDs are all 0s,
+but the PIDs are different.<br/>
+<a href="images/result-view.png"><img src="images/result-view.png" alt="View of results" width=75%></img></a>
+<li>We double-clicked on the line corresponding to line 40 in the "Amituofo-PID_8950-thread_0"
+section.  The editor window brought the file "testfeedback.c" to front, and focused on line 40.<br>
+<a href="images/double-clicked.png"><img src="images/double-clicked.png" alt="Screenshot when an item in the view is double clicked" width=75%></img></a>
+
+<li>We also tried to click the markers in the editor window's overview ruler to go to other
+hot spot locations.<br/>
+<a href="images/overview-ruler.png"><img src="images/overview-ruler.png" alt="Using overview ruler to go to lines" width=75%></img></a>
+
+</ol>
+
+
+
+<h2>GUI Items Added In This Feature</h2>
+<p>
+
+Several GUI items were added by this feature, as shown in the following screen shots.
+<nl>
+<li>A new context menu entry "Display PerfSuite Feedback"
+and a keyboard combination shortcut "CTRL-7"<br/>
+<a href="images/context-menu.png"><img src="images/context-menu.png" alt="New Context Menu Entry: Display PerfSuite Feedback" width=75%></a>
+
+<li>A new view category "PTP ETFw Feedback View" and a new view
+"PerfSuite Feedback Items"<br/>
+<a href="images/show-view.png"><img src="images/show-view.png" alt="New View Category and View" width=75%></a>
+
+<li>A new annotation type "PerfSuite Feedback Marker" and its preferences
+ in "General -> Editors -> Text Editors -> Annotations -> PerfSuite Feedback Marker"<br/>
+<p>
+The preference items allow a user to choose for the lines associated with
+the markers: whether the markers appear in the
+vertical ruler, the overview ruler or neither, whether the text is highlighted or
+underlined with squiggly lines or neither, and the background color
+of the lines.<br/>
+<a href="images/prefs.png"><img src="images/prefs.png" alt="New Annotation Preference" width=75%></a>
+
+</nl>
+
+<h2>References</h2>
+<p>
+
+<ul>
+<li>Eclipse PTP ETFw Feedback View page on Eclipse Wiki:<br/>
+    <a href="http://wiki.eclipse.org/PTP/ETFw/PTP_External_Tools_Framework_Feedback_View">http://wiki.eclipse.org/PTP/ETFw/PTP_External_Tools_Framework_Feedback_View</a>
+<li>PerfSuite web site:<br/>
+    At NCSA: <a href="http://perfsuite.ncsa.illinois.edu">http://perfsuite.ncsa.illinois.edu</a><br/>
+    At Source Forge: <a href="http://sourceforge.net/projects/perfsuite/">http://sourceforge.net/projects/perfsuite/</a>
+</ul>
+<p>&nbsp;<p>&nbsp;<p>&nbsp;
+<p><a href="#top">Back to Top</a>
+</body>
+</html>
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/plugin.properties b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/plugin.properties
new file mode 100644
index 0000000..b647c3a
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/plugin.properties
@@ -0,0 +1,6 @@
+#Properties file for org.eclipse.ptp.etfw.feedback.perfsuite.doc.user
+
+pluginName=PTP ETFw PerfSuite Feedback View Documentation
+pluginProvider=Eclipse PTP
+
+
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/plugin.xml b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/plugin.xml
new file mode 100644
index 0000000..e8a126a
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/plugin.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+   <extension
+         point="org.eclipse.help.toc">
+      <toc file="toc.xml">
+      </toc>
+   </extension>
+
+</plugin>
diff --git a/core/org.eclipse.ptp.remote.core/pom.xml b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/pom.xml
similarity index 68%
copy from core/org.eclipse.ptp.remote.core/pom.xml
copy to tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/pom.xml
index e66b6e0..b0e2fea 100644
--- a/core/org.eclipse.ptp.remote.core/pom.xml
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/pom.xml
@@ -6,11 +6,11 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
-    <relativePath>../../pom.xml</relativePath>
+    <version>8.0.0-SNAPSHOT</version>
+    <relativePath>../../../pom.xml</relativePath>
   </parent>
 
-  <artifactId>org.eclipse.ptp.remote.core</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <artifactId>org.eclipse.ptp.etfw.feedback.perfsuite.doc.user</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/toc.xml b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/toc.xml
new file mode 100644
index 0000000..1d6056f
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite.doc.user/toc.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+
+<toc label="ETFw PerfSuite" link_to="../org.eclipse.ptp.etfw.doc.user/toc.xml#etfw-other" >
+ <topic href="html/perfsuite-feedback-view.html" label="PerfSuite Feedback View">
+ </topic>
+</toc>
diff --git a/core/org.eclipse.ptp.remote.core/.classpath b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/.classpath
similarity index 99%
rename from core/org.eclipse.ptp.remote.core/.classpath
rename to tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/.classpath
index 4c62a80..ad32c83 100644
--- a/core/org.eclipse.ptp.remote.core/.classpath
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/.classpath
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/core/org.eclipse.ptp.remote.ui/.project b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/.project
similarity index 93%
rename from core/org.eclipse.ptp.remote.ui/.project
rename to tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/.project
index c68e1d4..5670d27 100644
--- a/core/org.eclipse.ptp.remote.ui/.project
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/.project
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>org.eclipse.ptp.remote.ui</name>
+	<name>org.eclipse.ptp.etfw.feedback.perfsuite</name>
 	<comment></comment>
 	<projects>
 	</projects>
diff --git a/core/org.eclipse.ptp.remote.core/.settings/org.eclipse.jdt.core.prefs b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/.settings/org.eclipse.jdt.core.prefs
similarity index 60%
rename from core/org.eclipse.ptp.remote.core/.settings/org.eclipse.jdt.core.prefs
rename to tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/.settings/org.eclipse.jdt.core.prefs
index 8000cd6..c537b63 100644
--- a/core/org.eclipse.ptp.remote.core/.settings/org.eclipse.jdt.core.prefs
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/.settings/org.eclipse.jdt.core.prefs
@@ -1,11 +1,7 @@
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
 org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
 org.eclipse.jdt.core.compiler.source=1.6
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/META-INF/MANIFEST.MF b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..1fd4fd6
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/META-INF/MANIFEST.MF
@@ -0,0 +1,19 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.ptp.etfw.feedback.perfsuite;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.eclipse.ptp.internal.etfw.feedback.perfsuite.Activator
+Bundle-Vendor: %pluginProvider
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.eclipse.ptp.etfw.feedback 
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Bundle-localization: plugin
+Export-Package: org.eclipse.ptp.internal.etfw.feedback.perfsuite;x-internal:=true,
+ org.eclipse.ptp.internal.etfw.feedback.perfsuite.actions;x-internal:=true,
+ org.eclipse.ptp.internal.etfw.feedback.perfsuite.util;x-internal:=true,
+ org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;x-internal:=true
diff --git a/core/org.eclipse.ptp.remote.core/about.html b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/about.html
similarity index 100%
rename from core/org.eclipse.ptp.remote.core/about.html
rename to tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/about.html
diff --git a/core/org.eclipse.ptp.remote.ui/build.properties b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/build.properties
similarity index 60%
rename from core/org.eclipse.ptp.remote.ui/build.properties
rename to tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/build.properties
index 878da21..0fa85bb 100644
--- a/core/org.eclipse.ptp.remote.ui/build.properties
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/build.properties
@@ -1,8 +1,10 @@
 source.. = src/
 output.. = bin/
-bin.includes = META-INF/,\
-               .,\
+bin.includes = .,\
+               META-INF/,\
                plugin.xml,\
-               about.html,\
                plugin.properties,\
-               icons/
+               about.html,\
+               build.properties
+
+
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/data/Makefile b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/data/Makefile
new file mode 100644
index 0000000..afbfc27
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/data/Makefile
@@ -0,0 +1,17 @@
+
+SHELL=/bin/bash
+all: build run process
+
+build:
+	mpicc -g -O2 -o testfeedback testfeedback.c
+
+run:
+	source ${HOME}/tmp/nightly-test/perfsuite-install/bin/psenv.sh; \
+	mpirun -np 4 ${HOME}/tmp/nightly-test/perfsuite-install/bin/psrun -f -C -c papi_profile_cycles.xml ./testfeedback
+
+process:
+	${HOME}/tmp/nightly-test/perfsuite-install/bin/psprocess -x -o mhpr.xml testfeedback.*.xml
+
+clean:
+	rm -rf testfeedback mhpr.xml testfeedback.*.xml
+
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/data/README.txt b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/data/README.txt
new file mode 100644
index 0000000..f7f437e
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/data/README.txt
@@ -0,0 +1,40 @@
+
+To test the PTP ETFw PerfSuite Feedback View plugin with the
+"testfeedback" example, you can either use the existing "mhpr.xml"
+file in this directory, or generate one in a "live" mode.  Using
+the existing one is likely simpler.
+
+1) Use the existing one -- the simpler approach
+
+In Eclipse, create a C project with the three files "Makefile",
+"mhpr.xml" and "testfeedback.c" in this directory.  Then, manually
+change the file path name in the "mhpr.xml" file from
+        /tmp/testfeedback
+to the path name corresponding to your Eclipse project created above,
+so that the PerfSuite Feedback View plugin can successfully find the
+files.  One way to do it with sed is:
+    cp mhpr.xml mhpr.xml.0
+    sed -i -e 's|/tmp/testfeedback|/home/user1/workspace/testfeedback|g' mhpr.xml
+    diff mhpr.xml.0 mhpr.xml
+Then, select the file "mhpr.xml" in the project explorer window,
+right click the mouse.  In the context menu, select "Display PerfSuite
+Feedback".  You should see a view named "PerfSuite Feedback Items"
+generated.  Double-clicking the lines in the view will bring the file
+in and focus on the corresponding lines.
+
+2) Generate a mhpr.xml in a "live" mode -- more complicated approach
+
+For the live mode, you need a working PerfSuite installation and
+MPI environment.  In Eclipse, create a C project with the two files
+"Makefile" and "testfeedback.c".  Make sure "mpicc", "mpirun",
+"psrun" and "psprocess" are in your paths.  Then run "make" either
+outside of Eclipse or from within Eclipse to build, run and process
+the generated PerfSuite XML files.  The final generated file is
+named "mhpr.xml".
+
+Then, select the file "mhpr.xml" in the project explorer window,
+right click the mouse.  In the context menu, select "Display PerfSuite
+Feedback".  You should see a view named "PerfSuite Feedback Items"
+generated.  Double-clicking the lines in the view will bring the file
+in and focus on the corresponding lines.
+
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/data/mhpr.xml b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/data/mhpr.xml
new file mode 100644
index 0000000..1b356e4
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/data/mhpr.xml
@@ -0,0 +1,427 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<!DOCTYPE multihwpcprofilereport SYSTEM "/home/ruiliu/tmp/nightly-test/perfsuite-install/share/perfsuite/dtds/pshwpc/multihwpcprofilereport-0.3.dtd">
+<multihwpcprofilereport xmlns:perfsuite="http://perfsuite.ncsa.uiuc.edu/" version="0.4" generator="psprocess">
+    <hwpcprofilereport xmlns:perfsuite="http://perfsuite.ncsa.uiuc.edu/" version="0.1" generator="psprocess">
+        <date>Fri Nov 22 15:08:42 2013</date>
+        <hostname>Amituofo</hostname>
+        <domainname>null</domainname>
+        <username>ruiliu</username>
+        <executioninfo>
+        <date>Fri Nov 22 15:08:41 2013</date>
+        <hostname>Amituofo</hostname>
+        <domainname>(none)</domainname>
+        <pid>9377</pid>
+        <thread>0</thread>
+        <username>ruiliu</username>
+        <command>testfeedback</command>
+        <wallclock units="ticks">3591963642</wallclock>
+        <cputime units="seconds">
+            <usertime>0.000260</usertime>
+            <systemtime>0.000070</systemtime>
+        </cputime>
+        <machineinfo>
+            <cpucount>2</cpucount>
+            <cpuinfo>
+                <vendor>Intel</vendor>
+                <brand>Intel(R) Core(TM)2 Duo CPU     T9400  @ 2.53GHz</brand>
+                <cpuidinfo>family: 6, model: 23, stepping: 6</cpuidinfo>
+                <revision>6</revision>
+                <clockspeed units="MHz">2534.000</clockspeed>
+                <cacheinfo>
+                    <levels>2</levels>
+                    <cache type="instruction" level="1">
+                        <size units="KB">32</size>
+                        <linesize units="B">64</linesize>
+                        <associativity type="set">8</associativity>
+                    </cache>
+                    <cache type="data" level="1">
+                        <size units="KB">32</size>
+                        <linesize units="B">64</linesize>
+                        <associativity type="set">8</associativity>
+                    </cache>
+                    <cache type="unified" level="2">
+                        <size units="KB">6144</size>
+                        <linesize units="B">64</linesize>
+                        <associativity type="set">24</associativity>
+                    </cache>
+                </cacheinfo>
+                <tlbinfo>
+                    <tlb type="data" level="1">
+                        <entries>16</entries>
+                        <associativity type="set">4</associativity>
+                    </tlb>
+                    <tlb type="data" level="1">
+                        <entries>16</entries>
+                        <associativity type="set">4</associativity>
+                    </tlb>
+                    <tlb type="instruction" level="1">
+                        <entries>128</entries>
+                        <associativity type="set">4</associativity>
+                    </tlb>
+                    <tlb type="instruction" level="1">
+                        <entries>4</entries>
+                        <associativity type="set">4</associativity>
+                    </tlb>
+                    <tlb type="data" level="2">
+                        <entries>256</entries>
+                        <associativity type="set">4</associativity>
+                    </tlb>
+                    <tlb type="data" level="2">
+                        <entries>32</entries>
+                        <associativity type="set">4</associativity>
+                    </tlb>
+                </tlbinfo>
+            </cpuinfo>
+            <memoryinfo units="MB">2904.20</memoryinfo>
+            <syspagesize units="KB">4</syspagesize>
+        </machineinfo>
+        </executioninfo>
+        <hwpcprofile mapper="binutils">
+            <hwpcevent class="PAPI" version="5.2.0.0" type="preset" name="PAPI_TOT_CYC" domain="user"/>
+            <period>10000000</period>
+            <totalsamples>61</totalsamples>
+            <module name="/home/ruiliu/IROOT/papi-5.2.0/lib/libpfm.so.4.4.0">
+                <file name="??">
+                    <function name="??">
+                        <line lineno="0">1</line>
+                    </function>
+                </file>
+            </module>
+            <module name="/lib/i386-linux-gnu/ld-2.15.so">
+                <file name="??">
+                    <function name="??">
+                        <line lineno="0">2</line>
+                    </function>
+                </file>
+            </module>
+            <module name="/lib/i386-linux-gnu/libc-2.15.so">
+                <file name="??">
+                    <function name="??">
+                        <line lineno="0">1</line>
+                    </function>
+                </file>
+            </module>
+            <module name="/tmp/testfeedback/testfeedback">
+                <file name="/tmp/testfeedback//testfeedback.c">
+                    <function name="calc_pi">
+                        <line lineno="33">4</line>
+                        <line lineno="34">5</line>
+                        <line lineno="35">47</line>
+                    </function>
+                </file>
+            </module>
+            <module name="/usr/lib/openmpi/lib/libopen-pal.so.0.0.0">
+                <file name="??">
+                    <function name="??">
+                        <line lineno="0">1</line>
+                    </function>
+                </file>
+            </module>
+        </hwpcprofile>
+    </hwpcprofilereport>
+    <hwpcprofilereport xmlns:perfsuite="http://perfsuite.ncsa.uiuc.edu/" version="0.1" generator="psprocess">
+        <date>Fri Nov 22 15:08:42 2013</date>
+        <hostname>Amituofo</hostname>
+        <domainname>null</domainname>
+        <username>ruiliu</username>
+        <executioninfo>
+        <date>Fri Nov 22 15:08:41 2013</date>
+        <hostname>Amituofo</hostname>
+        <domainname>(none)</domainname>
+        <pid>9380</pid>
+        <thread>0</thread>
+        <username>ruiliu</username>
+        <command>testfeedback</command>
+        <wallclock units="ticks">3595116188</wallclock>
+        <cputime units="seconds">
+            <usertime>0.000250</usertime>
+            <systemtime>0.000000</systemtime>
+        </cputime>
+        <machineinfo>
+            <cpucount>2</cpucount>
+            <cpuinfo>
+                <vendor>Intel</vendor>
+                <brand>Intel(R) Core(TM)2 Duo CPU     T9400  @ 2.53GHz</brand>
+                <cpuidinfo>family: 6, model: 23, stepping: 6</cpuidinfo>
+                <revision>6</revision>
+                <clockspeed units="MHz">2534.000</clockspeed>
+                <cacheinfo>
+                    <levels>2</levels>
+                    <cache type="instruction" level="1">
+                        <size units="KB">32</size>
+                        <linesize units="B">64</linesize>
+                        <associativity type="set">8</associativity>
+                    </cache>
+                    <cache type="data" level="1">
+                        <size units="KB">32</size>
+                        <linesize units="B">64</linesize>
+                        <associativity type="set">8</associativity>
+                    </cache>
+                    <cache type="unified" level="2">
+                        <size units="KB">6144</size>
+                        <linesize units="B">64</linesize>
+                        <associativity type="set">24</associativity>
+                    </cache>
+                </cacheinfo>
+                <tlbinfo>
+                    <tlb type="data" level="1">
+                        <entries>16</entries>
+                        <associativity type="set">4</associativity>
+                    </tlb>
+                    <tlb type="data" level="1">
+                        <entries>16</entries>
+                        <associativity type="set">4</associativity>
+                    </tlb>
+                    <tlb type="instruction" level="1">
+                        <entries>128</entries>
+                        <associativity type="set">4</associativity>
+                    </tlb>
+                    <tlb type="instruction" level="1">
+                        <entries>4</entries>
+                        <associativity type="set">4</associativity>
+                    </tlb>
+                    <tlb type="data" level="2">
+                        <entries>256</entries>
+                        <associativity type="set">4</associativity>
+                    </tlb>
+                    <tlb type="data" level="2">
+                        <entries>32</entries>
+                        <associativity type="set">4</associativity>
+                    </tlb>
+                </tlbinfo>
+            </cpuinfo>
+            <memoryinfo units="MB">2904.20</memoryinfo>
+            <syspagesize units="KB">4</syspagesize>
+        </machineinfo>
+        </executioninfo>
+        <hwpcprofile mapper="binutils">
+            <hwpcevent class="PAPI" version="5.2.0.0" type="preset" name="PAPI_TOT_CYC" domain="user"/>
+            <period>10000000</period>
+            <totalsamples>58</totalsamples>
+            <module name="/lib/i386-linux-gnu/ld-2.15.so">
+                <file name="??">
+                    <function name="??">
+                        <line lineno="0">1</line>
+                    </function>
+                </file>
+            </module>
+            <module name="/lib/i386-linux-gnu/libc-2.15.so">
+                <file name="??">
+                    <function name="??">
+                        <line lineno="0">1</line>
+                    </function>
+                </file>
+            </module>
+            <module name="/tmp/testfeedback/testfeedback">
+                <file name="/tmp/testfeedback//testfeedback.c">
+                    <function name="calc_pi">
+                        <line lineno="33">7</line>
+                        <line lineno="34">6</line>
+                        <line lineno="35">43</line>
+                    </function>
+                </file>
+            </module>
+        </hwpcprofile>
+    </hwpcprofilereport>
+    <hwpcprofilereport xmlns:perfsuite="http://perfsuite.ncsa.uiuc.edu/" version="0.1" generator="psprocess">
+        <date>Fri Nov 22 15:08:42 2013</date>
+        <hostname>Amituofo</hostname>
+        <domainname>null</domainname>
+        <username>ruiliu</username>
+        <executioninfo>
+        <date>Fri Nov 22 15:08:41 2013</date>
+        <hostname>Amituofo</hostname>
+        <domainname>(none)</domainname>
+        <pid>9381</pid>
+        <thread>0</thread>
+        <username>ruiliu</username>
+        <command>testfeedback</command>
+        <wallclock units="ticks">3528777109</wallclock>
+        <cputime units="seconds">
+            <usertime>0.000240</usertime>
+            <systemtime>0.000010</systemtime>
+        </cputime>
+        <machineinfo>
+            <cpucount>2</cpucount>
+            <cpuinfo>
+                <vendor>Intel</vendor>
+                <brand>Intel(R) Core(TM)2 Duo CPU     T9400  @ 2.53GHz</brand>
+                <cpuidinfo>family: 6, model: 23, stepping: 6</cpuidinfo>
+                <revision>6</revision>
+                <clockspeed units="MHz">2534.000</clockspeed>
+                <cacheinfo>
+                    <levels>2</levels>
+                    <cache type="instruction" level="1">
+                        <size units="KB">32</size>
+                        <linesize units="B">64</linesize>
+                        <associativity type="set">8</associativity>
+                    </cache>
+                    <cache type="data" level="1">
+                        <size units="KB">32</size>
+                        <linesize units="B">64</linesize>
+                        <associativity type="set">8</associativity>
+                    </cache>
+                    <cache type="unified" level="2">
+                        <size units="KB">6144</size>
+                        <linesize units="B">64</linesize>
+                        <associativity type="set">24</associativity>
+                    </cache>
+                </cacheinfo>
+                <tlbinfo>
+                    <tlb type="data" level="1">
+                        <entries>16</entries>
+                        <associativity type="set">4</associativity>
+                    </tlb>
+                    <tlb type="data" level="1">
+                        <entries>16</entries>
+                        <associativity type="set">4</associativity>
+                    </tlb>
+                    <tlb type="instruction" level="1">
+                        <entries>128</entries>
+                        <associativity type="set">4</associativity>
+                    </tlb>
+                    <tlb type="instruction" level="1">
+                        <entries>4</entries>
+                        <associativity type="set">4</associativity>
+                    </tlb>
+                    <tlb type="data" level="2">
+                        <entries>256</entries>
+                        <associativity type="set">4</associativity>
+                    </tlb>
+                    <tlb type="data" level="2">
+                        <entries>32</entries>
+                        <associativity type="set">4</associativity>
+                    </tlb>
+                </tlbinfo>
+            </cpuinfo>
+            <memoryinfo units="MB">2904.20</memoryinfo>
+            <syspagesize units="KB">4</syspagesize>
+        </machineinfo>
+        </executioninfo>
+        <hwpcprofile mapper="binutils">
+            <hwpcevent class="PAPI" version="5.2.0.0" type="preset" name="PAPI_TOT_CYC" domain="user"/>
+            <period>10000000</period>
+            <totalsamples>58</totalsamples>
+            <module name="/lib/i386-linux-gnu/ld-2.15.so">
+                <file name="??">
+                    <function name="??">
+                        <line lineno="0">2</line>
+                    </function>
+                </file>
+            </module>
+            <module name="/tmp/testfeedback/testfeedback">
+                <file name="/tmp/testfeedback//testfeedback.c">
+                    <function name="calc_pi">
+                        <line lineno="33">6</line>
+                        <line lineno="34">6</line>
+                        <line lineno="35">44</line>
+                    </function>
+                </file>
+            </module>
+        </hwpcprofile>
+    </hwpcprofilereport>
+    <hwpcprofilereport xmlns:perfsuite="http://perfsuite.ncsa.uiuc.edu/" version="0.1" generator="psprocess">
+        <date>Fri Nov 22 15:08:42 2013</date>
+        <hostname>Amituofo</hostname>
+        <domainname>null</domainname>
+        <username>ruiliu</username>
+        <executioninfo>
+        <date>Fri Nov 22 15:08:41 2013</date>
+        <hostname>Amituofo</hostname>
+        <domainname>(none)</domainname>
+        <pid>9382</pid>
+        <thread>0</thread>
+        <username>ruiliu</username>
+        <command>testfeedback</command>
+        <wallclock units="ticks">3524325039</wallclock>
+        <cputime units="seconds">
+            <usertime>0.000240</usertime>
+            <systemtime>0.000010</systemtime>
+        </cputime>
+        <machineinfo>
+            <cpucount>2</cpucount>
+            <cpuinfo>
+                <vendor>Intel</vendor>
+                <brand>Intel(R) Core(TM)2 Duo CPU     T9400  @ 2.53GHz</brand>
+                <cpuidinfo>family: 6, model: 23, stepping: 6</cpuidinfo>
+                <revision>6</revision>
+                <clockspeed units="MHz">2534.000</clockspeed>
+                <cacheinfo>
+                    <levels>2</levels>
+                    <cache type="instruction" level="1">
+                        <size units="KB">32</size>
+                        <linesize units="B">64</linesize>
+                        <associativity type="set">8</associativity>
+                    </cache>
+                    <cache type="data" level="1">
+                        <size units="KB">32</size>
+                        <linesize units="B">64</linesize>
+                        <associativity type="set">8</associativity>
+                    </cache>
+                    <cache type="unified" level="2">
+                        <size units="KB">6144</size>
+                        <linesize units="B">64</linesize>
+                        <associativity type="set">24</associativity>
+                    </cache>
+                </cacheinfo>
+                <tlbinfo>
+                    <tlb type="data" level="1">
+                        <entries>16</entries>
+                        <associativity type="set">4</associativity>
+                    </tlb>
+                    <tlb type="data" level="1">
+                        <entries>16</entries>
+                        <associativity type="set">4</associativity>
+                    </tlb>
+                    <tlb type="instruction" level="1">
+                        <entries>128</entries>
+                        <associativity type="set">4</associativity>
+                    </tlb>
+                    <tlb type="instruction" level="1">
+                        <entries>4</entries>
+                        <associativity type="set">4</associativity>
+                    </tlb>
+                    <tlb type="data" level="2">
+                        <entries>256</entries>
+                        <associativity type="set">4</associativity>
+                    </tlb>
+                    <tlb type="data" level="2">
+                        <entries>32</entries>
+                        <associativity type="set">4</associativity>
+                    </tlb>
+                </tlbinfo>
+            </cpuinfo>
+            <memoryinfo units="MB">2904.20</memoryinfo>
+            <syspagesize units="KB">4</syspagesize>
+        </machineinfo>
+        </executioninfo>
+        <hwpcprofile mapper="binutils">
+            <hwpcevent class="PAPI" version="5.2.0.0" type="preset" name="PAPI_TOT_CYC" domain="user"/>
+            <period>10000000</period>
+            <totalsamples>58</totalsamples>
+            <module name="/lib/i386-linux-gnu/libc-2.15.so">
+                <file name="??">
+                    <function name="??">
+                        <line lineno="0">1</line>
+                    </function>
+                </file>
+            </module>
+            <module name="/tmp/testfeedback/testfeedback">
+                <file name="/tmp/testfeedback//testfeedback.c">
+                    <function name="calc_pi">
+                        <line lineno="33">11</line>
+                        <line lineno="34">5</line>
+                        <line lineno="35">40</line>
+                    </function>
+                </file>
+            </module>
+            <module name="/usr/lib/openmpi/lib/libopen-pal.so.0.0.0">
+                <file name="??">
+                    <function name="??">
+                        <line lineno="0">1</line>
+                    </function>
+                </file>
+            </module>
+        </hwpcprofile>
+    </hwpcprofilereport>
+</multihwpcprofilereport>
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/data/testfeedback.c b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/data/testfeedback.c
new file mode 100644
index 0000000..e577aba
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/data/testfeedback.c
@@ -0,0 +1,101 @@
+/*
+ * Sample program to test Eclipse PTP ETFw PerfSuite Feedback View plugin
+ * with calculating Pi in MPI.
+ */
+#include <mpi.h>
+#include <stdio.h>
+#include <string.h>
+
+void
+calc_pi(int rank, int num_procs)
+{
+	int		i;
+	int		num_intervals;
+	double	h;
+	double	mypi;
+	double	pi;
+	double	sum;
+	double	x;
+
+	/* set number of intervals to calculate */
+	if (rank == 0) {
+		num_intervals = 100000000;
+	}
+
+	/* tell other tasks how many intervals */
+	MPI_Bcast(&num_intervals, 1, MPI_INT, 0, MPI_COMM_WORLD);
+
+	/* now everyone does their calculation */
+
+	h = 1.0 / (double) num_intervals;
+	sum = 0.0;
+
+	for (i = rank + 1; i <= num_intervals; i += num_procs) {
+		x = h * ((double)i - 0.5);
+		sum += (4.0 / (1.0 + x*x));
+	}
+
+	mypi = h * sum;
+
+	/* combine everyone's calculations */
+	MPI_Reduce(&mypi, &pi, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+
+	if (rank == 0) {
+		printf("PI is approximately %.16f\n", pi);
+	}
+}
+
+int
+main(int argc, char *argv[])
+{
+	int			my_rank;		/* rank of process */
+	int			num_procs;		/* number of processes */
+	int			source;			/* rank of sender */
+	int			dest = 0;		/* rank of receiver */
+	int			tag = 0;		/* tag for messages */
+	char		message[100];	/* storage for message */
+	MPI_Status	status ;		/* return status for receive */
+
+	/* start up MPI */
+
+	MPI_Init(&argc, &argv);
+
+	/* find out process rank */
+	MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
+
+	/* find out number of processes */
+	MPI_Comm_size(MPI_COMM_WORLD, &num_procs);
+
+
+	if (my_rank != 0) {
+		/* create message */
+		sprintf(message, "Greetings from process %d!", my_rank);
+		/* use strlen+1 so that '\0' get transmitted */
+		MPI_Send(message, strlen(message)+1, MPI_CHAR,
+				dest, tag, MPI_COMM_WORLD);
+	} else {
+		printf("Num processes: %d\n",num_procs);
+		for (source = 1; source < num_procs; source++) {
+			MPI_Recv(message, 100, MPI_CHAR, source, tag,
+					MPI_COMM_WORLD, &status);
+			printf("Process 0 received \"%s\"\n",message);
+		}
+
+		/* now return the compliment */
+		sprintf(message, "Hi, how are you?");
+	}
+
+	MPI_Bcast(message, strlen(message)+1, MPI_CHAR, dest, MPI_COMM_WORLD);
+
+	if (my_rank != 0) {
+		printf("Process %d received \"%s\"\n", my_rank, message);
+	}
+
+	/* calculate PI */
+	calc_pi(my_rank, num_procs);
+
+	/* shut down MPI */
+	MPI_Finalize();
+
+	return 0;
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/icons/feedback_action.gif b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/icons/feedback_action.gif
new file mode 100644
index 0000000..c8bd499
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/icons/feedback_action.gif
Binary files differ
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/icons/feedback_view.gif b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/icons/feedback_view.gif
new file mode 100644
index 0000000..c8bd499
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/icons/feedback_view.gif
Binary files differ
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/plugin.properties b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/plugin.properties
new file mode 100644
index 0000000..e682f56
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/plugin.properties
@@ -0,0 +1,8 @@
+#Properties file for org.eclipse.ptp.etfw.feedback.perfsuite
+category.name = PerfSuite Feedback View
+command.name = Display PerfSuite Feedback
+
+pluginName=PTP Perfsuite Feedback View
+pluginProvider=Eclipse PTP
+
+
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/plugin.xml b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/plugin.xml
new file mode 100644
index 0000000..834a3c3
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/plugin.xml
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+  
+   <extension
+         point="org.eclipse.ui.commands">
+      <category
+            name="%category.name"
+            id="org.eclipse.ptp.etfw.feedback.actions.commands.category">
+      </category>
+      <command
+            name="%command.name"
+            categoryId="org.eclipse.ptp.etfw.feedback.actions.commands.category"
+            id="org.eclipse.ptp.etfw.feedback.actions.commands.perfsuiteCommand">
+      </command>
+   </extension>
+   <extension
+         point="org.eclipse.ui.handlers">
+      <handler
+            commandId="org.eclipse.ptp.etfw.feedback.actions.commands.perfsuiteCommand"
+            class="org.eclipse.ptp.etfw.feedback.actions.handlers.ShowFeedbackHandler">
+      </handler>
+   </extension>
+   <extension
+         point="org.eclipse.ui.bindings">
+      <key
+            commandId="org.eclipse.ptp.etfw.feedback.actions.commands.perfsuiteCommand"
+            contextId="org.eclipse.ui.contexts.window"
+            sequence="M1+7"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>
+   </extension>
+<!-- this needs to be a context/popup menu and not added to the main toolbar
+   <extension
+         point="org.eclipse.ui.menus">
+         
+      <menuContribution
+            locationURI="menu:org.eclipse.ui.main.menu?after=additions">
+         <menu
+               label="Feedback"
+               mnemonic="b"
+               id="org.eclipse.ptp.etfw.feedback.actions.menus.perfsuiteMenu">
+            <command
+                  commandId="org.eclipse.ptp.etfw.feedback.actions.commands.perfsuiteCommand"
+                  mnemonic="P"
+                  id="org.eclipse.ptp.etfw.feedback.actions.menus.perfsuiteCommand">
+            </command>
+         </menu>
+      </menuContribution>
+      <menuContribution
+            locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions">
+         <toolbar
+               id="org.eclipse.ptp.etfw.feedback.actions.toolbars.perfsuiteToolbar">
+            <command
+                  commandId="org.eclipse.ptp.etfw.feedback.actions.commands.perfsuiteCommand"
+                  icon="icons/feedback_action.gif"
+                  tooltip="Show ETFw Feedback view for selected PerfSuite XML file"
+                  id="org.eclipse.ptp.etfw.feedback.actions.toolbars.perfsuiteCommand">
+            </command>
+         </toolbar>
+      </menuContribution>
+     
+   </extension>
+    -->
+      <extension
+         id="perfsuiteParser"
+         name="PerfSuite PTP Feedback view report items"
+         point="org.eclipse.ptp.etfw.feedback.parser">
+      <feedtype
+            class="org.eclipse.ptp.internal.etfw.feedback.perfsuite.PerfSuiteFeedbackParser"
+            id="org.eclipse.ptp.etfw.feedback.perfsuite.parser"
+            name="PerfSuite feedback parser"
+            nodeName="multihwpcprofilereport">
+      </feedtype>
+   </extension>
+     <extension
+         point="org.eclipse.ui.views">
+   	   <category
+            name="PTP ETFw Feedback View"
+            id="org.eclipse.ptp.etfw.feedback">
+       </category>
+       <view
+            name="PerfSuite Feedback Items"
+            icon="icons/feedback_view.gif"
+            category="org.eclipse.ptp.etfw.feedback"
+            class="org.eclipse.ptp.internal.etfw.feedback.perfsuite.PerfSuiteFeedbackView"
+            id="org.eclipse.ptp.etfw.feedback.perfsuite.view">
+      </view>
+   </extension>
+   <!--  instead of action, this should be a handler 
+      <extension
+         id="perfsuiteAction"
+         name="PerfSuite Added Action"
+         point="org.eclipse.ptp.etfw.feedback.action">
+      <action
+            class="org.eclipse.ptp.internal.etfw.feedback.perfsuite.actions.PerfSuiteFeedbackAction"
+            icon="icons/feedback_action.gif" 
+            id="perfsuiteFeedbackAction1"
+            name="PerfSuite Feedback Action"
+            viewID="org.eclipse.ptp.etfw.feedback.perfsuite.view">
+      </action>
+   </extension>
+   -->
+
+   <extension
+         id="org.eclipse.ptp.etfw.feedback.perfsuite.marker"
+         name="PerfSuite feedback"
+         point="org.eclipse.core.resources.markers">
+      <super type="org.eclipse.core.resources.textmarker"/>
+   </extension>
+   
+   <!-- this changes the marker image in the editor marker bar  -->
+   
+   <extension
+         point="org.eclipse.ui.editors.annotationTypes">
+      <type
+            markerType="org.eclipse.ptp.etfw.feedback.perfsuite.marker"
+            name="org.eclipse.ptp.etfw.feedback.perfsuite.markerAnnotation">
+      </type>
+   </extension>
+   
+   
+   <extension
+         point="org.eclipse.ui.editors.markerAnnotationSpecification">
+   <specification
+         annotationType="org.eclipse.ptp.etfw.feedback.perfsuite.markerAnnotation"
+         colorPreferenceKey="org.eclipse.ptp.etfw.feedback.perfsuite.color"
+         colorPreferenceValue="192,255,192"
+         contributesToHeader="true"
+         highlightPreferenceKey="org.eclipse.ptp.etfw.feedback.perfsuite.highlight"
+         highlightPreferenceValue="true"
+         includeOnPreferencePage="true"
+         label="PerfSuite Feedback Marker"
+         overviewRulerPreferenceKey="org.eclipse.ptp.etfw.feedback.perfsuite.overview"
+         overviewRulerPreferenceValue="true"
+         presentationLayer="0"
+         textPreferenceKey="org.eclipse.ptp.etfw.feedback.perfsuite.text"
+         textPreferenceValue="true"
+         textStylePreferenceValue="BOX"
+         verticalRulerPreferenceKey="org.eclipse.ptp.etfw.feedback.perfsuite.ruler"
+         verticalRulerPreferenceValue="true"
+         symbolicIcon="info">
+   </specification>
+   </extension>
+   
+   <extension
+         point="org.eclipse.ui.menus">
+      <menuContribution
+            locationURI="popup:org.eclipse.ui.popup.any?after=buildGroup">
+            <command
+                  commandId="org.eclipse.ptp.etfw.feedback.actions.commands.perfsuiteCommand"
+                  mnemonic="P"
+                  id="org.eclipse.ptp.etfw.feedback.actions.menus.perfsuiteCommand">
+            <visibleWhen
+                  checkEnabled="false">
+               <with
+                     variable="activeMenuSelection">
+                  <count
+                        value="1">
+                  </count>
+                  <iterate>
+                     <instanceof value="org.eclipse.core.resources.IResource" />
+                     <test
+                           property="org.eclipse.core.resources.name"
+                           value="*.xml" />
+                  </iterate>
+               </with>
+            </visibleWhen>
+            </command>
+      </menuContribution>     
+   </extension>
+
+</plugin>
diff --git a/core/org.eclipse.ptp.remote.core/pom.xml b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/pom.xml
similarity index 69%
rename from core/org.eclipse.ptp.remote.core/pom.xml
rename to tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/pom.xml
index e66b6e0..1130686 100644
--- a/core/org.eclipse.ptp.remote.core/pom.xml
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/pom.xml
@@ -6,11 +6,11 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
-    <relativePath>../../pom.xml</relativePath>
+    <version>8.0.0-SNAPSHOT</version>
+    <relativePath>../../../pom.xml</relativePath>
   </parent>
 
-  <artifactId>org.eclipse.ptp.remote.core</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <artifactId>org.eclipse.ptp.etfw.feedback.perfsuite</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/Activator.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/Activator.java
new file mode 100644
index 0000000..27eca6e
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/Activator.java
@@ -0,0 +1,82 @@
+/**********************************************************************
+ * Copyright (c) 2013 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ * 
+ * @author Rui Liu
+ */
+public class Activator extends AbstractUIPlugin {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "org.eclipse.ptp.etfw.feedback.perfsuite";
+	public static final String MARKER_ID = "org.eclipse.ptp.etfw.feedback.perfsuite.marker";
+	public static final String VIEW_ID = "org.eclipse.ptp.etfw.feedback.perfsuite.view";
+
+	// The shared instance
+	private static Activator plugin;
+
+	/**
+	 * The constructor
+	 */
+	public Activator() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 * 
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+	/**
+	 * Returns an image descriptor for the image file at the given
+	 * plug-in relative path
+	 * 
+	 * @param path
+	 *            the path
+	 * @return the image descriptor
+	 */
+	public static ImageDescriptor getImageDescriptor(String path) {
+		return imageDescriptorFromPlugin(PLUGIN_ID, path);
+	}
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/PerfSuiteFeedbackItem.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/PerfSuiteFeedbackItem.java
new file mode 100644
index 0000000..9f9617f
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/PerfSuiteFeedbackItem.java
@@ -0,0 +1,144 @@
+/**********************************************************************
+ * Copyright (c) 2013 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.ptp.etfw.feedback.AbstractFeedbackItem;
+import org.eclipse.ptp.etfw.feedback.IFeedbackItem;
+import org.eclipse.ptp.internal.etfw.feedback.FeedbackIDs;
+
+/**
+ * @author Rui Liu
+ * 
+ */
+public class PerfSuiteFeedbackItem extends AbstractFeedbackItem implements IFeedbackItem {
+	private final String name; // module name
+	private final String parentID;
+	private final String id; // function name
+	private final String description; // number of samples
+	private final String filename; // file name
+	private final long lineNo; // line number
+
+	/**
+	 * map of values by attribute name, that the view LabelProvider will want to ask for
+	 */
+	Map<String, String> map = new HashMap<String, String>();
+
+	public PerfSuiteFeedbackItem(String name, String parentID, String id, String filename, long lineNo, String description) {
+		this.name = name;
+		this.parentID = parentID;
+		this.id = id;
+		this.filename = filename;
+		this.lineNo = lineNo;
+		this.description = description;
+
+		map.put(FeedbackIDs.FEEDBACK_ATTR_NAME, name);
+		map.put(FeedbackIDs.FEEDBACK_ATTR_FILENAME, filename);
+		map.put(FeedbackIDs.FEEDBACK_ATTR_ID, id);
+		map.put(IMarker.LINE_NUMBER, Long.toString(lineNo));
+		map.put(FeedbackIDs.FEEDBACK_ATTR_DESC, description);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ptp.etfw.feedback.obj.IFeedbackItem#getChildren()
+	 */
+	public List<IFeedbackItem> getChildren() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ptp.etfw.feedback.obj.IFeedbackItem#getDescription()
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ptp.etfw.feedback.obj.IFeedbackItem#getFile()
+	 */
+	public String getFile() {
+		return filename;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ptp.etfw.feedback.obj.IFeedbackItem#getID()
+	 */
+	public String getID() {
+		return id;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ptp.etfw.feedback.obj.IFeedbackItem#getLineNoStart()
+	 */
+	public int getLineNoStart() {
+		return (int) this.lineNo;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ptp.etfw.feedback.obj.IFeedbackItem#getName()
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ptp.etfw.feedback.obj.IFeedbackItem#getParentID()
+	 */
+	public String getParentID() {
+		return parentID;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ptp.etfw.feedback.obj.IFeedbackItem#hasChildren()
+	 */
+	public boolean hasChildren() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	public Object getObject() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public String getAttr(String key) {
+		return map.get(key);
+	}
+
+	public Object getObject(String key) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/PerfSuiteFeedbackParser.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/PerfSuiteFeedbackParser.java
new file mode 100644
index 0000000..23b4b52
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/PerfSuiteFeedbackParser.java
@@ -0,0 +1,246 @@
+/**********************************************************************
+ * Copyright (c) 2013 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.xpath.XPathExpressionException;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.ptp.etfw.feedback.AbstractFeedbackParser;
+import org.eclipse.ptp.etfw.feedback.IFeedbackItem;
+import org.eclipse.ptp.internal.etfw.feedback.perfsuite.util.ValueSortedMap;
+import org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml.PS_HwpcProfileReport;
+import org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml.PS_MultiHwpcProfileReport;
+import org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml.PS_Report;
+import org.xml.sax.SAXException;
+
+/**
+ * PerfSuite parser to return items for the ETFw Feedback view
+ * 
+ * @author Rui Liu
+ * 
+ */
+
+public class PerfSuiteFeedbackParser extends AbstractFeedbackParser {
+	private final boolean traceOn = false;
+	private List<IFeedbackItem> items = new ArrayList<IFeedbackItem>();
+
+	public List<IFeedbackItem> getFeedbackItems(IFile ifile) {
+		if (traceOn) {
+			System.out.println("Reading xml file: " + ifile.getLocation());
+		}
+
+		items = new ArrayList<IFeedbackItem>();
+		try {
+			items = parse(ifile);
+		} catch (XPathExpressionException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (ParserConfigurationException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (SAXException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+
+		return items;
+	}
+
+	/**
+	 * @deprecated use getFeedbackItems(IFile) instead
+	 */
+	@Deprecated
+	public List<IFeedbackItem> getFeedbackItems(File file) {
+		// this is probably twisted around, too much converting back and forth
+		IWorkspace workspace = ResourcesPlugin.getWorkspace();
+		IPath location = Path.fromOSString(file.getAbsolutePath());
+		IFile ifile = workspace.getRoot().getFileForLocation(location);
+		List<IFeedbackItem> items = getFeedbackItems(ifile);
+		return items;
+	}
+
+	/**
+	 * Marker ID for markers added by this feedback parser.
+	 * For now they are all the same, using plugin id.
+	 */
+	public String getMarkerID() {
+		return Activator.MARKER_ID;
+	}
+
+	public String getViewID() {
+		return Activator.VIEW_ID;
+	}
+
+	/**
+	 * Populate objects from the xml file given
+	 * 
+	 * @param xmlfile
+	 * @throws ParserConfigurationException
+	 * @throws SAXException
+	 * @throws IOException
+	 * @throws XPathExpressionException
+	 */
+	public List<IFeedbackItem> parse(IFile ifile) throws ParserConfigurationException, SAXException, IOException,
+			XPathExpressionException {
+
+		List<IFeedbackItem> items = new ArrayList<IFeedbackItem>();
+
+		/*
+		 * Tried ifile.getFullPath().toPortableString(), Path.ROOT,
+		 * ifile.getName(), getFullPath, getLocation, getLocationURI, getRawLocation, getRawLocationURI,
+		 * project.getName(), getFullPath, .. , getFolder(ifile.getName()).
+		 */
+
+		IProject project = ifile.getProject();
+		String remoteAbsPath = project.getLocationURI().getPath();
+		String projectFullPath = project.getFullPath().toString();
+
+		if (traceOn) {
+			System.out.println("remoteAbsPath = '" + remoteAbsPath + "'");
+			System.out.println("projectFullPath = '" + projectFullPath + "'");
+		}
+
+		InputStream ais = null;
+		try {
+			ais = ifile.getContents();
+		} catch (CoreException ce) {
+			System.out.println("Caught CoreException: " + ce.getMessage());
+		}
+
+		/*
+		 * Used to use the file name. Changed to use InputStream to support remote projects as well.
+		 * 
+		 * String filename = ifile.getLocation().toString();
+		 * PS_Report report0 = PS_Report.newInstance (filename, false);
+		 */
+		PS_Report report0 = PS_Report.newInstance(ais, false);
+		if (!(report0 instanceof PS_MultiHwpcProfileReport)) {
+			System.err.println("Error: The XML is not a PerfSuite multi-HWPC profile report.");
+			System.exit(1);
+		}
+
+		// Contains the files that are not in the project work space.
+		// The Default c-tor values of capacity: 16, load factor: 0.75 seem OK.
+		HashSet<String> skipFileSet = new HashSet<String>();
+
+		PS_MultiHwpcProfileReport report = (PS_MultiHwpcProfileReport) report0;
+		for (PS_HwpcProfileReport rep : report.getReports()) {
+			// Note: Using only the first profile if there are multiple -- this is rare: getProfiles().get(0)
+			int numProfiles = rep.getProfiles().size();
+			if (numProfiles > 1) {
+				System.out
+						.println("Warning: The report contains multiple profiles, using only the first one.");
+			}
+			Map<String, Map<String, Map<String, Map<Long, Long>>>> nestedMap = rep.getProfiles().get(0).getNestedModuleMap();
+			// The nested parts for module, file, func, line.
+			for (Map.Entry<String, Map<String, Map<String, Map<Long, Long>>>> mentry : ValueSortedMap.getNestedMapDesc(nestedMap)
+					.entrySet()) {
+				String mName = mentry.getKey();
+				Map<String, Map<String, Map<Long, Long>>> fileMap = mentry.getValue();
+				for (Map.Entry<String, Map<String, Map<Long, Long>>> fientry : ValueSortedMap.getNestedMapDesc(fileMap).entrySet()) {
+					String fiName = fientry.getKey();
+					Map<String, Map<Long, Long>> funcMap = fientry.getValue();
+					for (Map.Entry<String, Map<Long, Long>> fuentry : ValueSortedMap.getNestedMapDesc(funcMap).entrySet()) {
+						String fuName = fuentry.getKey();
+						Map<Long, Long> lineMap = fuentry.getValue();
+						for (Map.Entry<Long, Long> lentry : ValueSortedMap.getMapDesc(lineMap).entrySet()) {
+							long lineno = lentry.getKey();
+							Long numSamples = lentry.getValue();
+							String parentID = rep.getHostName() + "-" + "PID_"
+									+ rep.getExecutionInfo().getPid() + "-"
+									+ "thread_" + rep.getExecutionInfo().getThreadId();
+
+							// Check whether the file with the given name (fiName) is in the project's workspace.
+							// A bit brute force, but it does not need the use of the IResource's.
+							// Tested to be working for both local and remote projects.
+							if (!fiName.startsWith(remoteAbsPath)) {
+								// Use a hash set to print out the msg only once for each file.
+								if (!skipFileSet.contains(fiName)) {
+									System.out.println("Plugin: org.eclipse.ptp.etfw.feedback.perfsuite: Project '"
+											+ project + "', file '" + fiName
+											+ "' does not exist in the work space, skipping...");
+									skipFileSet.add(fiName);
+								}
+								continue;
+							}
+
+							String fiNameInWS = fiName.replace(remoteAbsPath, projectFullPath);
+							if (traceOn) {
+								System.out.println("fiName = '" + fiName + "'");
+								System.out.println("mName = '" + mName + "'");
+								System.out.println("fiNameInWS = '" + fiNameInWS + "'");
+							}
+
+							if (!fiName.equals("??")) {
+								try {
+									PerfSuiteFeedbackItem item = new PerfSuiteFeedbackItem(mName, parentID, fuName, fiNameInWS,
+											lineno, Long.toString(numSamples));
+									items.add(item);
+								} catch (Exception e) {
+									System.out.println("PerfSuiteFeedbackParser: Exception creating item.  Likely the file '"
+											+ fiName +
+											"' is not in the workspace.  Exception message: " + e.getMessage());
+								}
+							}
+						}
+					}
+				}
+			}
+		}
+
+		if (traceOn) {
+			System.out.println("SFP found items: " + items.size() + " elements");
+		}
+		return items;
+	}
+	/**
+	 * For testing only:
+	 * try to create an IFile/IResource from the info we have
+	 * 
+	 * @param fname
+	 */
+	/*
+	 * private void tryCreateFile(String fname, IFile xmlFile) {
+	 * System.out.println("xmlFile: "+xmlFile);
+	 * IProject proj=xmlFile.getProject();
+	 * IResource foundRes=proj.findMember(fname);
+	 * boolean exists=foundRes.exists();
+	 * IPath path = foundRes.getFullPath();
+	 * String s = path.toString();
+	 * String s2=path.toPortableString();
+	 * String s3=path.toOSString();
+	 * IResource recreatedRes=getResourceInProject(proj,fname);
+	 * exists=recreatedRes.exists();
+	 * 
+	 * }
+	 */
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/PerfSuiteFeedbackView.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/PerfSuiteFeedbackView.java
new file mode 100644
index 0000000..db9131e
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/PerfSuiteFeedbackView.java
@@ -0,0 +1,119 @@
+/**********************************************************************
+ * Copyright (c) 2013 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.ptp.etfw.feedback.views.SimpleTreeTableMarkerView;
+import org.eclipse.ptp.internal.etfw.feedback.FeedbackIDs;
+import org.eclipse.ptp.internal.etfw.feedback.preferences.PreferenceConstants;
+
+/**
+ * Expose PerfSuite profile result in an eclipse view
+ * 
+ * @author Rui Liu
+ * 
+ */
+public class PerfSuiteFeedbackView extends SimpleTreeTableMarkerView {
+	/**
+	 * Assure that parent nodes will get created as needed: that is,
+	 * we don't have IFeedbackItem objects for the parents. Parent "nodes"
+	 * are created for each unique parentID, thus "categorizing" the items
+	 * automatically
+	 */
+	private static boolean CREATE_PARENT_NODES = true;
+
+	/**
+	 * Attribute names, used to store info in the marker, corresponding to each column in the view.
+	 * Use these constants or values of your own.
+	 * To add/remove a column, modify this: (1)
+	 */
+	private static String[] attrNames = new String[] {
+			FeedbackIDs.FEEDBACK_ATTR_NAME,
+			FeedbackIDs.FEEDBACK_ATTR_FILENAME,
+			FeedbackIDs.FEEDBACK_ATTR_ID,
+			IMarker.LINE_NUMBER,
+			FeedbackIDs.FEEDBACK_ATTR_DESC };
+	/** To add/remove a column, modify this: (2) */
+	private static String[] colNames = new String[] { "Module", "File", "Function", "LineNo", "Number of Samples" };
+	/** To add/remove a column, modify this: (3) */
+	private static int[] widths = new int[] { 320, 160, 160, 70, 70 };
+
+	protected IPreferenceStore preferenceStore;
+	protected boolean maintainExpandCollapseState;
+
+	/**
+	 * Use the ctor that allows an arbitrary number of extra columns.
+	 * This ctor is called (1).
+	 */
+	public PerfSuiteFeedbackView() {
+		super(Activator.getDefault(), "profile", "lines", attrNames, colNames, widths,
+				Activator.MARKER_ID, "parent", CREATE_PARENT_NODES);
+		preferenceStore = Activator.getDefault().getPreferenceStore();
+		maintainExpandCollapseState = preferenceStore.getBoolean(PreferenceConstants.P_MAINTAIN_EXPAND_COLLAPSE_STATE);
+
+	}
+
+	/**
+	 * Provide something for the "Info" popup action, based on the marker.<br>
+	 * Since we didn't use the Artifact, Artifact Manager, etc in the base class we need something to look useful here.
+	 */
+	@Override
+	public String extractMarkerInfo(IMarker marker) {
+		StringBuffer infoBuffer = new StringBuffer();
+		String filename = marker.getResource().getName();
+		String modulename = getStrAttr(marker, FeedbackIDs.FEEDBACK_ATTR_NAME);
+		String functionname = getStrAttr(marker, FeedbackIDs.FEEDBACK_ATTR_ID);
+		infoBuffer.append("\nDetails:\n");
+		infoBuffer.append("\nModule name: ").append(modulename);
+		infoBuffer.append("\nFile name: ").append(filename);
+		infoBuffer.append("\nFunction name: ").append(functionname);
+		infoBuffer.append("\nLine number: ").append(getStrAttr(marker, IMarker.LINE_NUMBER));
+		infoBuffer.append("\n\nNumber of samples: ").append(getStrAttr(marker, FeedbackIDs.FEEDBACK_ATTR_DESC));
+		return infoBuffer.toString();
+	}
+
+	public String getStrAttr(IMarker marker, String attrName) {
+		try {
+			String str = marker.getAttribute(attrName).toString();
+			return str;
+		} catch (CoreException e) {
+			System.out.println("Exception getting marker attr in PerfSuiteFeedbackView.getStrAttr() " + e.getMessage());
+			return "*error*";
+		}
+
+	}
+
+	/**
+	 * Maintain the user choice of whether to expand or collapse all entries.
+	 */
+	@Override
+	protected void maintainExpandCollapseStatus() {
+		// re-query each time, in case prefs have changed
+		maintainExpandCollapseState = preferenceStore.getBoolean(PreferenceConstants.P_MAINTAIN_EXPAND_COLLAPSE_STATE);
+		if (maintainExpandCollapseState) {
+			switch (expandCollapseStatus) {
+			case EXPAND_COLLAPSE_EXPANDALL:
+				expandAllAction.run();
+				break;
+			case EXPAND_COLLAPSE_COLLAPSEALL:
+				collapseAllAction.run();
+				break;
+			case EXPAND_COLLAPSE_NONE:
+				// do nothing: user hasn't done expandAll or collapseAll yet.
+			}
+		}
+	}
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/PerfSuiteShowFeedbackHandler.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/PerfSuiteShowFeedbackHandler.java
new file mode 100644
index 0000000..4594659
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/PerfSuiteShowFeedbackHandler.java
@@ -0,0 +1,25 @@
+/**********************************************************************
+ * Copyright (c) 2013 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite;
+
+import org.eclipse.ptp.etfw.feedback.actions.handlers.ShowFeedbackHandler;
+
+/**
+ * Handler to handle actions from this plug-in to show its data in the Feedback View
+ * 
+ * @author Rui Liu
+ * 
+ */
+public class PerfSuiteShowFeedbackHandler extends ShowFeedbackHandler {
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/actions/PerfSuiteFeedbackAction.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/actions/PerfSuiteFeedbackAction.java
new file mode 100644
index 0000000..bb173cc
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/actions/PerfSuiteFeedbackAction.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2013 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.actions;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.ptp.etfw.feedback.AbstractFeedbackAction;
+import org.eclipse.ptp.etfw.feedback.IFeedbackItem;
+import org.eclipse.ptp.internal.etfw.feedback.perfsuite.Activator;
+
+/**
+ * PerfSuite action that's added to the ETFw Feedback view.
+ * 
+ * @author Rui Liu
+ * 
+ */
+public class PerfSuiteFeedbackAction extends AbstractFeedbackAction {
+
+	@Override
+	public void run(IMarker marker) {
+		String name = "(unknown)";
+		try {
+			name = (String) marker.getAttribute("name");
+		} catch (CoreException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		MessageDialog.openInformation(null, "PerfSuite action", "The current location of the executable is: " + name);
+
+	}
+
+	@Override
+	public void run(IFeedbackItem item) {
+		MessageDialog.openInformation(null, "PerfSuite action", "The action for an IFeedbackItem, currently no-op.");
+
+	}
+
+	@Override
+	public String getToolTip() {
+		return "PerfSuiteFeedbackAction tooltip";
+	}
+
+	@Override
+	public String getText() {
+		return "PerfSuiteFeedbackAction text";
+	}
+
+	@Override
+	public String getPluginId() {
+		return Activator.PLUGIN_ID;
+	}
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/util/PS_Debug.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/util/PS_Debug.java
new file mode 100644
index 0000000..c347070
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/util/PS_Debug.java
@@ -0,0 +1,194 @@
+/* $Id: PS_Debug.java,v 1.16 2011/04/12 16:37:20 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2009-2011 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.util;
+
+/**
+ * A class to print debug messages, and get and set debug level.
+ * <p>
+ * The prefix string, which occurs at the beginning of the debug output,
+ * is configurable through the environment variable
+ * <code>PS_DEBUG_PREFIX</code>. It has a default value of "PS_DEBUG".
+ * <p>
+ * The separator string, which separates the prefix, debug level string,
+ * and the given debug message string,
+ * is configurable through the environment variable
+ * <code>PS_DEBUG_SEPARATOR</code>. It has a default value of ":".
+ *
+ * @author Rui Liu
+ */
+
+public class PS_Debug {
+    private static int level = 0;
+    public  static String prefix = "PS_DEBUG";
+    private static String separator = ":";
+    public  static final int OFF     = 0;
+    public  static final int FATAL   = 1;
+    public  static final int WARNING = 2;
+    public  static final int INFO    = 3;
+    public  static final int VERBOSE = 4;
+    private static int CALLER_SFN = 3;
+    /* CALLER_SFN:
+     *   The proper value of Caller's Stack Frame Number in the
+     *   fileName(), methodName() and lineNumber() methods.
+     *   Observations of values:
+     *       Sun 1.6 JVM: 3,
+     *       Sun 1.5 and IBM 1.6 JVMs: 4.
+     */
+    static {
+        int lev = PS_Environment.getNonNegativeInteger ("PS_DEBUG");
+        if (lev > 0) {
+            // Temporarily raise it in this block,
+            // so the messages in this block can be printed out using print().
+            level = VERBOSE + 1;
+            String var;
+            boolean sfn_found_at_runtime = false;
+
+            StackTraceElement[] st = Thread.currentThread().getStackTrace();
+            for (int i = 0; i < st.length; i++) {
+                if (st[i].getClassName().equals ("org.eclipse.ptp.internal.etfw.feedback.perfsuite.util.PS_Debug")
+                    && st[i].getMethodName().equals ("<clinit>")) {
+                    CALLER_SFN = i + 2;
+                    sfn_found_at_runtime = true;
+                    break;
+                }
+                /* Use "<clinit>", since we are in the <clinit> method now.
+                 * Use "+ 2", to account for the 2 calls to PS_Debug.
+                 *     print(...), which then calls
+                 *     fileName(), or methodName(), or lineNumber().
+                 */
+            }
+
+            var = "PS_DEBUG_PREFIX";
+            String pre = PS_Environment.getString (var);
+            if (pre != null) {
+                prefix = pre;
+                print (PS_Debug.INFO, 
+                       "Setting debug prefix to \"" + prefix +
+                       "\" according to the environment variable " + var);
+            }
+
+            var = "PS_DEBUG_SEPARATOR";
+            String sep = PS_Environment.getString (var);
+            if (sep != null) {
+                separator = sep;
+                print (PS_Debug.INFO, 
+                       "Setting debug separator to " + separator +
+                       " according to the environment variable " + var);
+            }
+
+            var = "PS_DEBUG";
+            print (PS_Debug.INFO, 
+                   "Setting debug level to " + lev +
+                   " according to the environment variable " + var);
+            level = lev;
+
+            if (sfn_found_at_runtime) {
+                print (PS_Debug.VERBOSE, "CALLER_SFN = " + CALLER_SFN
+                       + ", found at run time.");
+            } else {
+                print (PS_Debug.VERBOSE, "CALLER_SFN = " + CALLER_SFN
+                       + ", using the pre-defined value.");
+            }
+        }
+    }
+
+    private static String levelString(int level) {
+        String levelString = null;
+        if (FATAL == level) {
+            levelString = "FATAL";
+        } else if (WARNING == level) {
+            levelString = "WARNING";
+        } else if (INFO == level) {
+            levelString = "INFO";
+        } else if (level >= VERBOSE) {
+            levelString = "VERBOSE";
+        }
+        return levelString;
+    }
+
+
+    /**
+     * Sets debug level to given value.
+     */
+    public static void setLevel(int lev) { level = lev; }
+
+    /**
+     * Returns the debug level as set by the environment variable
+     * PS_DEBUG; 0 means no debug information, positive integer
+     * means to print out debug information.
+     */
+    public static int getLevel() { return level; }
+
+    public static String getPrefix () { return prefix; }
+    public static void setPrefix (String pre) { prefix = pre; }
+
+    /**
+     * Prints given debug message to standard out
+     * if the current debug level is no lower than the given level;
+     * does not print if given level is 0 or negative.
+     */
+    public static void print (int lev, String msg) {
+        if ( (level < lev) || (lev <= 0) ) {
+            return;
+        }
+        StringBuilder sb = new StringBuilder();
+        System.out.println
+            (sb.append (prefix).append (separator)
+             .append (levelString(lev)).append (separator)
+             .append (fileName()).append (separator)
+             .append (methodName()).append (separator)
+             .append (lineNumber()).append (separator)
+             .append (msg)
+             .toString());
+    }
+
+    /**
+     * Prints given message to standard error,
+     * and exit with code 1.
+     *
+     * Per Rick's good suggestion, print the debug info
+     * (file name, method name, line number) only when the
+     * debug level is set to "> OFF (0)" (i.e., FATAL and above).
+     */
+    public static void errorExit (String msg) {
+        String separator = ":";
+        StringBuilder sb = new StringBuilder();
+        sb.append ("Error: ");
+        if (level > OFF) {
+            sb.append (fileName()).append (separator)
+                .append (methodName()).append (separator)
+                .append (lineNumber()).append (separator);
+        }
+        sb.append (msg)
+            .append (".  Exiting...");
+        System.err.println (sb.toString());
+        System.exit (1);
+    }
+
+    private static String fileName() {
+        return Thread.currentThread().getStackTrace()[CALLER_SFN]
+            .getFileName();
+    }
+    private static String methodName() {
+        return Thread.currentThread().getStackTrace()[CALLER_SFN]
+            .getMethodName();
+    }
+    private static int lineNumber() {
+        return Thread.currentThread().getStackTrace()[CALLER_SFN]
+            .getLineNumber();
+    }
+
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/util/PS_Environment.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/util/PS_Environment.java
new file mode 100644
index 0000000..ee8846e
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/util/PS_Environment.java
@@ -0,0 +1,60 @@
+/* $Id: PS_Environment.java,v 1.6 2009/11/05 22:16:20 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2009 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.util;
+
+/**
+ * Class to parse and set parameters from environment variables.
+ *
+ * @author Rui Liu
+ */
+public class PS_Environment {
+
+    /**
+     * Returns the non-nagative integer value
+     * from a given environment variable;
+     * returns -1 if there is no such variable defined,
+     * the value is not an integer, or the value is negative.
+     */
+    public static int getNonNegativeInteger (String environmentVariable) {
+        int ret = -1;
+        String envVar = System.getenv (environmentVariable);
+        if (envVar != null) {
+            try {
+                int parsedValue = Integer.parseInt (envVar);
+                if (parsedValue >= 0) {
+                    ret = parsedValue;
+                } else {
+                    String errstr = environmentVariable + "=\"" + envVar +
+                        "\". Wrong value. Should be >=0.";
+                    PS_Debug.print (PS_Debug.WARNING, errstr);
+                }
+            } catch (NumberFormatException e) {
+                String errstr = environmentVariable + "=\"" + envVar +
+                    "\". Wrong format. Should be an integer.";
+                PS_Debug.print (PS_Debug.WARNING, errstr);
+            }
+        }
+        return ret;
+    }
+
+    /**
+     * Returns the string value from a given environment variable;
+     * returns null if there is no such variable defined.
+     */
+    public static String getString (String environmentVariable) {
+        return System.getenv (environmentVariable);
+    }
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/util/ValueSortedMap.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/util/ValueSortedMap.java
new file mode 100644
index 0000000..6c10752
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/util/ValueSortedMap.java
@@ -0,0 +1,161 @@
+// $Id: ValueSortedMap.java,v 1.6 2010/01/29 20:11:16 ruiliu Exp $
+
+/*******************************************************************************
+ * Copyright (c) 2009-2010 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+/**
+ * Class to sort a given map by its values, not by its keys,
+ * in ascending or descending order. Supports both regular maps
+ * and nested maps (maps of maps). The type of the value in the
+ * innermost map must be "Long".
+ *
+ * @author Rui Liu
+ */
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.util;
+
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.Comparator;
+import java.util.Iterator;
+
+public class ValueSortedMap {
+
+    // definitions of the comparator classes
+    private static class
+        ValueComparator<K extends Comparable<K>, V extends Comparable<V>>
+        implements Comparator<K> {
+
+        private Map<K,V> map = null;
+        private boolean desc = false;
+
+        // indesc is a flag to request the descending order
+        ValueComparator (Map<K,V> inmap, boolean indesc) {
+            map = inmap;
+            desc = indesc;
+        }
+
+        public int compare (K k1, K k2) {
+            V v1 = map.get (k1);
+            V v2 = map.get (k2);
+            int ret = v1.compareTo (v2);
+            // reverse the result for descending order
+            if (desc) {
+                ret = -ret;
+            }
+            if (ret != 0) {
+                return ret;
+            }
+            // now, values are considered the same
+            // we first compare the keys
+            ret = k1.compareTo (k2);
+            if (ret != 0) {
+                return ret;
+            }
+            // now both values and keys are considered the same
+            // we could possibly return any of the values -1, 0, and 1,
+            // Let's just return 1, which means larger.
+            // For an ascending sort, this means later.
+            return 1;
+        }
+    }
+
+    private static class
+        NestedMapValueComparator<K extends Comparable<K>, V extends Map>
+        implements Comparator<K> {
+
+        private Map<K,V> map = null;
+        private boolean desc = false;
+
+        // indesc is a flag to request the descending order
+        NestedMapValueComparator (Map<K,V> inmap, boolean indesc) {
+            map = inmap;
+            desc = indesc;
+        }
+
+        public int compare (K k1, K k2) {
+            Map map1 = map.get (k1);
+            Map map2 = map.get (k2);
+            int ret = Long.signum (getMapSizeRecursively (map1)
+                                   - getMapSizeRecursively (map2));
+            // reverse the result for descending order
+            if (desc) {
+                ret = -ret;
+            }
+            if (ret != 0) {
+                return ret;
+            }
+            ret = k1.compareTo (k2);
+            if (ret != 0) {
+                return ret;
+            }
+            return 1;
+        }
+    }
+
+    // This method is mainly for a map whose leaf value object is a Long,
+    // which is the case for the nestedMap used in PerfSuite profile processing.
+    private static long getMapSizeRecursively (Map inmap) {
+        long ret = 0;
+        for (Iterator iter = inmap.entrySet().iterator(); iter.hasNext(); ) {
+            Map.Entry entry = (Map.Entry) iter.next();
+            if (entry.getValue() instanceof Map) {
+                long size = getMapSizeRecursively ((Map) entry.getValue());
+                ret += size;
+            } else {
+                // Incorrectly wrote "ret++;" before, which was not the
+                // desired behavior for sorting the sample map.
+                Long val = (Long) entry.getValue();
+                ret += val.longValue();
+            }
+        }
+        return ret;
+    }
+
+    // get map methods
+    public static <K extends Comparable<K>,V extends Comparable<V>>
+        Map<K,V> getMap (Map<K,V> inmap) {
+
+        Comparator<K> cmp = new ValueComparator<K,V> (inmap, false);
+        Map<K,V> map = new TreeMap<K,V> (cmp);
+        map.putAll (inmap);
+        return map;
+    }
+
+    public static <K extends Comparable<K>,V extends Comparable<V>>
+        Map<K,V> getMapDesc (Map<K,V> inmap) {
+
+        Comparator<K> cmp = new ValueComparator<K,V> (inmap, true);
+        Map<K,V> map = new TreeMap<K,V> (cmp);
+        map.putAll (inmap);
+        return map;
+    }
+
+    public static <K extends Comparable<K>,V extends Map>
+        Map<K,V> getNestedMap (Map<K,V> inmap) {
+
+        Comparator<K> cmp = new NestedMapValueComparator<K,V> (inmap, false);
+        Map<K,V> map = new TreeMap<K,V> (cmp);
+        map.putAll (inmap);
+        return map;
+    }
+
+    public static <K extends Comparable<K>,V extends Map>
+        Map<K,V> getNestedMapDesc (Map<K,V> inmap) {
+
+        Comparator<K> cmp = new NestedMapValueComparator<K,V> (inmap, true);
+        Map<K,V> map = new TreeMap<K,V> (cmp);
+        map.putAll (inmap);
+        return map;
+    }
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/util/package-info.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/util/package-info.java
new file mode 100644
index 0000000..fc75069
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/util/package-info.java
@@ -0,0 +1,7 @@
+// $Id: package-info.java,v 1.2 2009/04/22 15:56:44 ruiliu Exp $
+
+/**
+ * Provides utility classes, such as for reading and parsing
+ * environment variables, and writing debug messages.
+ */
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.util;
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/CPUInfo.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/CPUInfo.java
new file mode 100644
index 0000000..580e01b
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/CPUInfo.java
@@ -0,0 +1,328 @@
+/* $Id: CPUInfo.java,v 1.44 2012/05/11 15:14:36 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2008-2009, 2011-2012 The Board of Trustees of
+ * the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+/*
+ * This file is part of PerfSuite.
+ */
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.List;
+import java.util.ArrayList;
+import org.xml.sax.Attributes;
+
+/**
+ * Class that contains information describing the characteristics of
+ * a Central Processing Unit (CPU). The two words &quot;processor&quot;
+ * and &quot;CPU&quot; are used exchangeably in the javadoc of this class.
+ *
+ * @author Rick Kufrin
+ * @author Rui Liu
+ */
+public class CPUInfo {
+    private String vendor;
+    private String brand;
+    private String cpuidInfo;
+    private int    revision;
+    private float  clockspeed;  // in MHz
+    private int    cacheLevels;
+    private List<List<Cache>> cacheList;
+    private List<List<TLB>> tlbList;
+
+    private static final String VENDORTAG     = "vendor";
+    private static final String BRANDTAG      = "brand";
+    private static final String CPUIDINFOTAG  = "cpuidinfo";
+    private static final String REVISIONTAG   = "revision";
+    private static final String CLOCKSPEEDTAG = "clockspeed";
+    private static final String CACHEINFOTAG  = "cacheinfo";
+    // nothing to parse for this element itself
+    private static final String CACHETAG      = "cache";
+    private static final String TYPEATT       = "type";
+    private static final String LEVELSTAG     = "levels";  // cacheinfo levels
+    private static final String TLBINFOTAG    = "tlbinfo"; // nothing to parse
+    private static final String TLBTAG        = "tlb";
+    // commented out as the checking of maximum is considered unneeded for now
+    // private static final int MAX_CACHE_LEVEL = 10;
+    // private static final int MAX_TLB_LEVEL = 10;
+    // a number used as the limit in sanity checking of cache/TLB level value
+
+    static private final Set<String> keySet;
+
+    private String tmpValue = "";
+    private String tmpElementName;
+    private boolean inTLBParsing;
+    // since the element "associativity" is present in both Cache and TLB,
+    // so use this flag to help find correct context
+    private Cache tmpCache;
+    private TLB tmpTLB;
+
+    static {
+	keySet = new TreeSet<String>();
+	keySet.add (VENDORTAG);
+	keySet.add (BRANDTAG);
+	keySet.add (CPUIDINFOTAG);
+	keySet.add (REVISIONTAG);
+	keySet.add (CLOCKSPEEDTAG);
+	keySet.add (LEVELSTAG);
+	keySet.add (TLBTAG);
+	keySet.add (CACHEINFOTAG);
+	keySet.add (TLBINFOTAG);
+    }
+
+    CPUInfo () {
+        // caches have a <levels> tag in PS generated XML files,
+        // however, TLBs don't, so need to handle TLB specially.
+        // here we first add one list<TLB> into tlbList,
+        // then when we see level attribute = 2 in a TLB element,
+        // we add another list<TLB> into it.
+	cacheList = new ArrayList<List<Cache>>();
+	tlbList = new ArrayList<List<TLB>>();
+        tlbList.add (new ArrayList<TLB>());
+	inTLBParsing = false;
+    }
+
+    static boolean containsKey (String str) {
+	return (keySet.contains (str) ||
+                Cache.containsKey (str) ||
+                TLB.containsKey (str));
+    }
+
+    void startElement(String uri, String localName, String qName,
+                      Attributes atts) {
+	tmpElementName = qName;
+
+	if (qName.equals (CACHETAG)) {
+	    tmpCache = Cache.newInstance (atts.getValue (TYPEATT));
+	}
+ 	else if (qName.equals (TLBTAG)) {
+	    tmpTLB = TLB.newInstance (atts.getValue (TYPEATT));
+ 	    inTLBParsing = true;
+ 	}
+
+	if (Cache.containsKey (qName) && (! inTLBParsing)) {
+	    tmpCache.startElement (uri, localName, qName, atts);
+	}
+ 	else if (TLB.containsKey (qName)) {
+ 	    tmpTLB.startElement (uri, localName, qName, atts);
+ 	}
+
+	tmpValue = "";
+    }
+
+    void characters(char[] ch, int start, int length) {
+	if (Cache.containsKey (tmpElementName) && (! inTLBParsing)) {
+	    tmpCache.characters (ch, start, length);
+	}
+ 	else if (TLB.containsKey (tmpElementName)) {
+ 	    tmpTLB.characters (ch, start, length);
+ 	}
+	else {
+	    String tmpString = new String (ch, start, length);
+	    if (tmpString.length() != 0) {
+		if (tmpValue.length() == 0) {
+		    tmpValue = tmpString;
+		} else {
+		    tmpValue = tmpValue.concat (tmpString);
+		}
+	    }
+	}
+    }
+
+    void endElement(String uri, String localName, String qName) {
+
+        tmpValue = tmpValue.trim();
+	if (Cache.containsKey (qName) && (! inTLBParsing)) {
+	    tmpCache.endElement (uri, localName, qName);
+ 	} else if (TLB.containsKey (qName)) {
+ 	    tmpTLB.endElement (uri, localName, qName);
+	} else {
+	    if (qName.equals (VENDORTAG)) {
+		vendor = tmpValue;
+	    } else if (qName.equals (BRANDTAG)) {
+		brand = tmpValue;
+	    } else if (qName.equals (CPUIDINFOTAG)) {
+		cpuidInfo = tmpValue;
+	    } else if (qName.equals (REVISIONTAG)) {
+		revision = Integer.parseInt (tmpValue);
+	    } else if (qName.equals (CLOCKSPEEDTAG)) {
+		clockspeed = Float.parseFloat (tmpValue);
+	    } else if (qName.equals (LEVELSTAG)) {
+		cacheLevels = Integer.parseInt (tmpValue);
+                if (cacheLevels < 1) {
+                    throw new RuntimeException
+                        ("Error: cache level is " + cacheLevels +
+                         ", it should be >= 1.");
+                }
+	    }
+	}
+	if (qName.equals (CACHETAG)) {
+            // check nullness of tmpCache
+            if (null == tmpCache) {
+                throw new RuntimeException
+                    ("Error: in parsing \"cache\" tag, tmpCache is null.");
+            }
+            // check whether level value is larger than current list size,
+            // if so, allocate ONE new list, and possibly "null" list in between;
+            // otherwise, check if it is null (the null list created in between)
+            // -- if so, allocate ONE new list.
+            // This is done, so unnecessary memory allocation is avoided.
+            int tmpLevel = tmpCache.getLevel();
+            if (tmpLevel > cacheList.size()) {
+                for (int i = cacheList.size(); i < tmpLevel-1; i++) {
+                    cacheList.add (null);
+                }
+                cacheList.add (new ArrayList<Cache>());
+            } else if (null == cacheList.get(tmpLevel-1)) {
+                cacheList.set (tmpLevel-1, new ArrayList<Cache>());
+            }
+            cacheList.get(tmpLevel-1).add (tmpCache);
+	}
+ 	else if (qName.equals (TLBTAG)) {
+            // check nullness of tmpTLB
+            if (null == tmpTLB) {
+                throw new RuntimeException
+                    ("Error: in parsing \"TLB\" tag, tmpTLB is null.");
+            }
+            // validate level value
+            int tmpLevel = tmpTLB.getLevel();
+            if (tmpLevel < 1) {
+                throw new RuntimeException
+                    ("Error: tlb level is " + tmpLevel +
+                     ", it should be >=1.");
+            }
+            // check whether level value is larger than current list size,
+            // if so, allocate ONE new list, and possibly "null" list in between;
+            // otherwise, check if it is null (the null list created in between)
+            // -- if so, allocate ONE new list.
+            // This is done, so unnecessary memory allocation is avoided.
+            if (tmpLevel > tlbList.size()) {
+                for (int i = tlbList.size(); i < tmpLevel-1; i++) {
+                    tlbList.add (null);
+                }
+                tlbList.add (new ArrayList<TLB>());
+            } else if (null == tlbList.get(tmpLevel-1)) {
+                tlbList.set (tmpLevel-1, new ArrayList<TLB>());
+            }
+            tlbList.get(tmpLevel-1).add (tmpTLB);
+ 	}
+
+	tmpValue = "";
+    }
+
+    /**
+     * Returns a string representation of this CPU,
+     * including the list of caches and TLBs.
+     */
+    public String toString() {
+        StringBuilder res = new StringBuilder();
+        res.append ("CPU Information:\n")
+            .append ("  [Vendor:     ").append (vendor).append ("]\n");
+	if (brand != null) {
+	    res.append ("  [Brand:      ").append (brand).append ("]\n");
+	}
+	if (cpuidInfo != null) {
+	    res.append ("  [CPUID info:      ").append (cpuidInfo).append ("]\n");
+	}
+	res.append ("  [Revision:   ").append (revision).append ("]\n")
+            .append ("  [Clockspeed: ").append (clockspeed).append (" (MHz)]\n")
+            .append ("  [Cache Levels: ").append (cacheLevels).append ("]\n");
+        // Added checking for nullness, as that is possible now that
+        // nulls are now possible in cacheList and tlbList.
+        for (int i = 0; i < cacheList.size(); i++) {
+            if (cacheList.get(i) != null && cacheList.get(i).size() > 0) {
+                res.append ("    Level ").append ((i+1)).append (":\n");
+                for (Cache tmpc : cacheList.get(i)) {
+                    res.append ("  ").append (tmpc);
+                }
+            }
+        }
+	res.append ("  [TLB Info]\n");
+        for (int i = 0; i < tlbList.size(); i++) {
+            if (tlbList.get(i) != null && tlbList.get(i).size() > 0) {
+                res.append ("    Level ").append ((i+1)).append (":\n");
+                for (TLB tmpt : tlbList.get(i)) {
+                    res.append("  ").append (tmpt);
+                }
+            }
+        }
+        return res.toString();
+    }
+
+    /**
+     * Returns the CPU manufacturer.
+     */
+    public String getVendor() { return vendor; }
+
+    /**
+     * Returns the processor brand.
+     */
+    public String getBrand() { return brand; }
+
+    /**
+     * Returns the processor CPUID info.
+     */
+    public String getCPUIDInfo() { return cpuidInfo; }
+
+    /**
+     * Returns the revision (also referred to as &quot;stepping&quot;).
+     */
+    public int getRevision() { return revision; }
+
+    /**
+     * Returns the clock frequency in megahertz.
+     */
+    public float getClockSpeed() { return clockspeed; }
+
+    /**
+     * Returns the levels of caches in this processor.
+     */
+    public int getCacheLevels() { return cacheLevels; }
+
+    /**
+     * Returns the list of list of caches in this processor.
+     * The first item in the returned value corresonds to level 1 cache,
+     * the second level 2, and so on.
+     */
+    public List<List<Cache>> getCaches() { return cacheList; }
+
+    /**
+     * Returns the list of list of translation lookaside buffers (TLBs)
+     * in this processor.
+     * The first item in the returned value corresonds to level 1 TLB,
+     * the second level 2, and so on.
+     */
+    public List<List<TLB>> getTLBs() { return tlbList; }
+
+    /**
+     * Returns the total cache size of the given cache level in this processor,
+     * in units of kilobytes (KB), returns 0 if the given cache level is
+     * less than 1, or larger than the maximum level in this processor.
+     */
+    public int getTotalCacheSizeOfLevel(int level) {
+        if (level < 1 || level > cacheList.size()) {
+            return 0;
+        }
+        int size = 0;
+	for (Cache cache : cacheList.get(level-1)) {
+            if (cache.getSizeUnits().equals ("KB")) {
+                size += cache.getSize();
+            }
+	}
+        return size;
+    }
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/CPUTime.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/CPUTime.java
new file mode 100644
index 0000000..9bcfe1f
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/CPUTime.java
@@ -0,0 +1,51 @@
+/* $Id: CPUTime.java,v 1.12 2009/03/25 15:17:46 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2008-2009 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+/**
+ * Class representing a measurement of CPU time, broken down into execution
+ * time in user mode and in system mode.
+ *
+ * @author Rick Kufrin
+ */
+
+public class CPUTime {
+    private float user;
+    private float system;
+
+    CPUTime(float u, float s) {
+        user = u;
+        system = s;
+    }
+
+    /** Returns the user time component in seconds. */
+    public float getUserTime() { return user; }
+
+    /** Returns the system time component in seconds. */
+    public float getSystemTime() { return system; }
+
+    /** Returns the sum of user and system time in seconds. */
+    public float getTotalTime() { return user + system; }
+
+    /**
+     * Returns a string representation of this CPU time,
+     * including user time and system time.
+     */
+    public String toString() {
+        return "  [CPU time:    user=" + user + " system=" + system +
+            " (seconds)]\n";
+    }
+}
+
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/Cache.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/Cache.java
new file mode 100644
index 0000000..35b996b
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/Cache.java
@@ -0,0 +1,205 @@
+/* $Id: Cache.java,v 1.33 2012/01/13 20:49:17 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2008-2012 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+/*
+ * This file is part of PerfSuite.
+ */
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+import java.util.Set;
+import java.util.TreeSet;
+import org.xml.sax.Attributes;
+
+/**
+ * Class representing a cache within a CPU.
+ * <p>
+ * <code>Cache</code> objects are exposed through a collection contained in
+ * a <code>CPUInfo</code> object.
+ *
+ * @author Rick Kufrin
+ * @author Rui Liu
+ */
+public class Cache {
+    private String type;       // instruction, data, unified
+    private int level; 
+    private int size;          // kilobytes or kuops
+    private int linesize;
+    private int associativity;
+    private String sizeUnits;         // "KB" or "KuOps"
+    private String associativityType; // "set" or "full"
+
+    private static final String CACHETAG     = "cache";
+    private static final String SIZETAG      = "size";
+    private static final String LINESIZETAG  = "linesize";
+    private static final String ASSOCTAG     = "associativity";
+    private static final String TYPEATT      = "type";
+    private static final String LEVELATT     = "level";
+    private static final String UNITSATT     = "units";
+
+    // strings for types of cache
+    private static final String DCACHE       = "data";
+    private static final String ICACHE       = "instruction";
+    private static final String ITRACECACHE  = "instruction trace";
+    private static final String UCACHE       = "unified";
+
+
+    static private final Set<String> keySet;
+
+    private String tmpValue = "";
+
+    static {
+	keySet = new TreeSet<String>();
+	keySet.add (CACHETAG);
+	keySet.add (SIZETAG);
+	keySet.add (LINESIZETAG);
+	keySet.add (ASSOCTAG);
+    }
+
+    static boolean containsKey (String str) {
+	return keySet.contains (str);
+    }
+
+    static Cache newInstance(String type) {
+	if (type == null) {
+	    return new Cache();
+	} else if (type.equalsIgnoreCase (ICACHE)) {
+	    return new InstructionCache();
+	} else if (type.equalsIgnoreCase (DCACHE)) {
+	    return new DataCache();
+	} else if (type.equalsIgnoreCase (UCACHE)) {
+	    return new UnifiedCache();
+	} else if (type.equalsIgnoreCase (ITRACECACHE)) {
+	    return new InstructionTraceCache();
+	} else {
+	    return new Cache();
+	}
+    }
+
+    Cache () {
+    }
+
+    void startElement(String uri, String localName, String qName,
+                      Attributes atts) {
+	if (qName.equals (CACHETAG)) {
+	    type = atts.getValue (TYPEATT);
+            String levelStr = atts.getValue (LEVELATT);
+            level = Integer.parseInt (levelStr);
+            if (level <= 0) {
+                String str = "Wrong cache level value '" + levelStr +
+                    "' . Should be > 0.";;
+                throw new RuntimeException (str);
+            }
+	} else if (qName.equals (SIZETAG)) {
+	    sizeUnits = atts.getValue (UNITSATT);
+	} else if (qName.equals (ASSOCTAG)) {
+	    associativityType = atts.getValue (TYPEATT);
+	}
+
+	tmpValue = "";
+    }
+
+    void characters(char[] ch, int start, int length) {
+	String tmpString = new String (ch, start, length);
+	if (tmpString.length() != 0) {
+	    if (tmpValue.length() == 0) {
+		tmpValue = tmpString;
+	    } else {
+		tmpValue = tmpValue.concat (tmpString);
+	    }
+	}
+    }
+
+    void endElement(String uri, String localName, String qName) {
+
+        tmpValue = tmpValue.trim();
+	if (qName.equals (SIZETAG)) {
+	    size = Integer.parseInt (tmpValue);
+            if (size <= 0) {
+                String str = "Wrong cache size value '" + tmpValue +
+                    "' . Should be > 0.";;
+                throw new RuntimeException (str);
+            }
+	} else if (qName.equals (LINESIZETAG)) {
+	    linesize = Integer.parseInt (tmpValue);
+            if (linesize <= 0) {
+                String str = "Wrong cache linesize value '" + tmpValue +
+                    "' . Should be > 0.";;
+                throw new RuntimeException (str);
+            }
+	} else if (qName.equals (ASSOCTAG)) {
+	    associativity = Integer.parseInt (tmpValue);
+            if (associativity < 0) {
+                String str = "Wrong cache associativity value '" + tmpValue +
+                    "' . Should be >= 0.";;
+                throw new RuntimeException (str);
+            }
+	}
+
+	tmpValue = "";
+    }
+
+    /**
+     * Returns a string representation of this cache.
+     */
+    public String toString() {
+	StringBuilder res = new StringBuilder();
+	res.append ("size: " + size + " (" + sizeUnits + ")");
+	res.append (", associativity: " + associativity +
+		    ", associativity type: \"" + associativityType + "\"");
+	return res.toString();
+    }
+
+    /**
+     * Returns the type (&quot;instruction&quot;, &quot;data&quot;,
+     * &quot;unified&quot;) within the cache hierarchy of this cache.
+     */
+    public String getType() { return type; }
+
+    /**
+     * Returns the level within the cache hierarchy of this cache.
+     */
+    public int getLevel() { return level; }
+
+    /**
+     * Returns the size of this cache;
+     * the units could be either kilobytes or KuOps,
+     * the <code>getSizeUnits</code> method can be used to find out the units.
+     */
+    public int getSize() { return size; }
+
+    /**
+     * Returns the units of the size of this cache,
+     * one of &quot;KB&quot; or &quot;KuOps&quot;.
+     */
+    public String getSizeUnits() { return sizeUnits; }
+
+    /**
+     * Returns the line size in bytes of this cache.
+     */
+    // needed by metrics calculation (bandwidth).
+    public int getLineSize() { return linesize; }
+
+    /**
+     * Returns the degree of associativity of this cache.
+     */
+    public int getAssociativity() { return associativity; }
+
+    /**
+     * Returns the type of associativity
+     * (&quot;set&quot; or &quot;full&quot;) of this cache.
+     */
+    public String getAssociativityType() { return associativityType; }
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/DataCache.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/DataCache.java
new file mode 100644
index 0000000..ed59677
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/DataCache.java
@@ -0,0 +1,35 @@
+/* $Id: DataCache.java,v 1.17 2009/03/25 15:17:46 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2008-2009 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+/**
+ * Class containing information describing a data cache.
+ *
+ * @author Rick Kufrin
+ * @author Rui Liu
+ */
+public class DataCache extends Cache {
+
+    public String toString() {
+        return "  [Data: " + super.toString() +
+            ", linesize: " + getLineSize() + " (B)]\n";
+    }
+
+    /**
+     * Returns the cache line size in bytes.
+     */
+    public int getLineSize() { return super.getLineSize(); }
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/DataTLB.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/DataTLB.java
new file mode 100644
index 0000000..585bc55
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/DataTLB.java
@@ -0,0 +1,29 @@
+/* $Id: DataTLB.java,v 1.12 2009/01/23 04:29:52 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2008-2009 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+/**
+ * Class containing information describing a data translation lookaside
+ * buffer (DTLB).
+ *
+ * @author Rick Kufrin
+ * @author Rui Liu
+ */
+public class DataTLB extends TLB {
+    public String toString() {
+        return "  [Data: " + super.toString() + "]\n";
+    }
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/ExecutionInfo.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/ExecutionInfo.java
new file mode 100644
index 0000000..02649d6
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/ExecutionInfo.java
@@ -0,0 +1,310 @@
+/* $Id: ExecutionInfo.java,v 1.42 2012/01/13 20:49:17 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2008-2009, 2011-2012 The Board of Trustees of
+ * the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+import java.util.Date;
+import java.text.SimpleDateFormat;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.Locale;
+// used in parsing date when default locale is not en_US
+
+import org.xml.sax.Attributes;
+
+/**
+ * Class containing information that describes process/thread execution
+ * environment as well as metrics specific to a particular measurement
+ * period.
+ *
+ * @author Rick Kufrin
+ * @author Rui Liu
+ */
+public class ExecutionInfo {
+
+    private static final String DATETAG       = "date";
+    private static final String HOSTTAG       = "hostname";
+    private static final String DOMAINTAG     = "domainname";
+    private static final String PIDTAG        = "pid";
+    private static final String THREADTAG     = "thread";
+    private static final String USERTAG       = "username";
+    private static final String COMMANDTAG    = "command";
+    private static final String COMMANDMD5ATT = "md5sum";
+    private static final String ANNOTATIONTAG = "annotation";
+    private static final String WALLCLOCKTAG  = "wallclock";
+    private static final String WALLCLOCKUNITSATT = "units";
+    private static final String CPUTIMETAG    = "cputime";
+    private static final String USERTIMETAG   = "usertime";
+    private static final String SYSTEMTIMETAG = "systemtime";
+
+    private static final String WALLCLOCKUNITSTICKS   = "ticks";
+    private static final String WALLCLOCKUNITSSECONDS = "seconds";
+
+    // ctime() output: "Tue Mar  2 12:48:28 2004"
+    private static final String DATEFORMAT    = "EEE MMM dd HH:mm:ss yyyy";
+
+    private Date    date;
+    private String  hostname;
+    private String  domainname;
+    private long    pid;
+    private long    thread;
+    private String  username;
+    private String  command;
+    private String  md5sum;
+    private String  annotation;
+    private long    wallticks;
+    private float   wallsecs;
+    private String  wallclockunits;
+    private CPUTime cputime;
+    private float   usertime;
+    private float   systemtime;
+
+    private String tmpValue = "";
+
+    static private final Set<String> keySet;
+
+    static {
+	keySet = new TreeSet<String>();
+	keySet.add (DATETAG);
+	keySet.add (HOSTTAG);
+	keySet.add (DOMAINTAG);
+	keySet.add (PIDTAG);
+	keySet.add (THREADTAG);
+	keySet.add (USERTAG);
+	keySet.add (COMMANDTAG);
+	keySet.add (ANNOTATIONTAG);
+	keySet.add (WALLCLOCKTAG);
+	keySet.add (CPUTIMETAG);
+	keySet.add (USERTIMETAG);
+	keySet.add (SYSTEMTIMETAG);
+    }
+
+    ExecutionInfo () {
+    }
+
+    static boolean containsKey (String str) {
+	return keySet.contains (str);
+    }
+
+    void startElement(String uri, String localName, String qName,
+                      Attributes atts) {
+	// parse the tags specific to this class
+	if (qName.equals (COMMANDTAG)) {
+	    md5sum = atts.getValue (COMMANDMD5ATT);
+	} else if (qName.equals (WALLCLOCKTAG)) {
+	    wallclockunits = atts.getValue (WALLCLOCKUNITSATT);
+	}
+
+	tmpValue = "";
+    }
+
+    void characters(char[] ch, int start, int length) {
+	String tmpString = new String (ch, start, length);
+	if (tmpString.length() != 0) {
+	    if (tmpValue.length() == 0) {
+		tmpValue = tmpString;
+	    } else {
+		tmpValue = tmpValue.concat (tmpString);
+	    }
+	}
+    }
+
+    void endElement(String uri, String localName, String qName) {
+
+        tmpValue = tmpValue.trim();
+	if (qName.equals (DATETAG)) {
+	    // SimpleDateFormat.parse() is locale-sensitive,
+	    // while currently (as of Jan 2, 2009) the date times in XML reports
+	    // generated by psrun and libpshwpc are of the en_US locale only.
+	    // The approach we used is: save user's default locale,
+	    // use en_US to parse the date, then restore user's default locale.
+	    Locale savedDefaultLocale = Locale.getDefault();
+	    if (! savedDefaultLocale.equals (Locale.US)) {
+		Locale.setDefault (Locale.US);
+	    }
+	    SimpleDateFormat df = new SimpleDateFormat(DATEFORMAT);
+	    try {
+		date = df.parse(tmpValue);
+	    } catch (java.text.ParseException pe) {
+		System.err.println
+                    ("Error in parsing date in ExecutionInfo.endElement:" +
+                     " date = \"" + tmpValue + "\".");
+                throw new RuntimeException (pe);
+	    }
+	    if (! savedDefaultLocale.equals (Locale.US)) {
+		Locale.setDefault (savedDefaultLocale);
+	    }
+	} else if (qName.equals (HOSTTAG)) {
+	    hostname = tmpValue;
+	} else if (qName.equals (DOMAINTAG)) {
+	    domainname = tmpValue;
+	} else if (qName.equals (PIDTAG)) {
+	    pid = Long.parseLong (tmpValue);
+	} else if (qName.equals (THREADTAG)) {
+	    thread = Long.parseLong (tmpValue);
+	} else if (qName.equals (USERTAG)) {
+	    username = tmpValue;
+	} else if (qName.equals (COMMANDTAG)) {
+	    command = tmpValue;
+	} else if (qName.equals (ANNOTATIONTAG)) {
+	    annotation = tmpValue;
+	} else if (qName.equals (WALLCLOCKTAG)) {
+	    if (wallclockunits.equals (WALLCLOCKUNITSTICKS)) {
+		wallticks = Long.parseLong (tmpValue);
+		wallsecs = 0;
+	    } else {
+		// units is "seconds"
+		wallticks = 0;
+		wallsecs = Float.parseFloat (tmpValue);
+	    }
+	} else if (qName.equals (USERTIMETAG)) {
+	    usertime = Float.parseFloat (tmpValue);
+	} else if (qName.equals (SYSTEMTIMETAG)) {
+	    systemtime = Float.parseFloat (tmpValue);
+	} else if (qName.equals (CPUTIMETAG)) {
+	    cputime = new CPUTime (usertime, systemtime);
+	}
+
+	tmpValue = "";
+    }
+
+    /**
+     * Returns a string representation of this execution information object.
+     */
+    public String toString() {
+        StringBuilder res = new StringBuilder();
+        res.append("Execution information:\n");
+        res.append("  [Date:        " + date.toString() + "]\n");
+        res.append("  [Hostname:    " + hostname + "]\n");
+        if (pid != 0) {
+            res.append("  [PID:         " + pid + "]\n");
+        }
+        if (thread != 0) {
+            res.append("  [Thread ID (0-based): " + thread + "]\n");
+        }
+        res.append("  [User:        " + username + "]\n");
+        res.append("  [Command:     " + command + "]\n");
+        if ( md5sum != null ) {
+            res.append("  [Checksum:    " + md5sum + "]\n");
+        }
+        if ( annotation != null ) {
+            res.append("  [Annotation:  " + annotation + "]\n");
+        }
+        if (cputime != null)
+            res.append(cputime.toString());
+
+        return res.toString();
+    }
+
+    /**
+     * Returns a Date object corresponding to the time at which the
+     * PerfSuite XML document was created (normally the end of the
+     * measurement period).
+     */
+    public Date getDate() {
+        return date;
+    }
+
+    /**
+     * Returns the host name of the computer on which the measurement
+     * was taken.
+     */
+    public String getHostName() { 
+        return hostname;
+    }
+
+    /**
+     * Returns the domain name of the computer on which the measurement
+     * was taken.  This is typically the constant <code>null</code>.
+     */
+    public String getDomainName() { 
+        return domainname;
+    }
+
+    /**
+     * Returns the process id (PID) of the program that was measured.
+     */
+    public long getPid() {
+        return pid;
+    }
+
+    /**
+     * Returns the zero-based thread id of the thread that was measured;
+     * please note that this is the id internal to the program,
+     * not the OS thread id.
+     */
+    public long getThreadId() {
+        return thread;
+    }
+
+    /**
+     * Returns the login/user name associated with the measurement.
+     */
+    public String getUserName() {
+        return username;
+    }
+
+    /**
+     * Returns a string corresponding to the name of the executable
+     * that was measured.
+     */
+    public String getCommand() { 
+        return command;
+    }
+
+    /**
+     * Returns a string corresponding to an MD5 checksum of the
+     * executable, if present in the document.
+     * Returns <code>null</code> if not.
+     */
+    public String getMD5Sum() {
+        return md5sum;
+    }
+
+    /**
+     * Returns the string that was optionally set by the user as
+     * a PerfSuite &quot;annotation&quot; element at the time at
+     * which the measurement was taken.
+     */
+    public String getAnnotation() {
+        return annotation;
+    }
+
+    /**
+     * Returns the total wall clock ticks (elapsed CPU cycles) between
+     * the time that measurement began and ended. When wall clock units
+     * is &quot;seconds&quot;, this method returns 0. So typical use is first
+     * call <code>getWallTicks</code>. If return value is 0,
+     * then use the value returned by <code>getWallSecs</code>;
+     * otherwise use the value returned by <code>getWallTicks</code>.
+     */
+    public long getWallTicks() { return wallticks; }
+
+    /**
+     * Returns the total wall clock time (elapsed seconds) between
+     * the time that measurement began and ended. When wall clock units
+     * is &quot;ticks&quot;, this method returns 0.
+     */
+    public float getWallSecs() { return wallsecs; }
+
+    /**
+     * Returns the CPU time consumed by the process/thread during the
+     * measurement.
+     */
+    public CPUTime getCPUTime() { return cputime; }
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/InstructionCache.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/InstructionCache.java
new file mode 100644
index 0000000..e570648
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/InstructionCache.java
@@ -0,0 +1,35 @@
+/* $Id: InstructionCache.java,v 1.18 2009/01/23 04:29:52 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2008-2009 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+/**
+ * Class containing information describing an instruction cache.
+ *
+ * @author Rick Kufrin
+ * @author Rui Liu
+ */
+public class InstructionCache extends Cache {
+
+    public String toString() {
+        return "  [Instruction: " + super.toString() +
+	    ", linesize: " + getLineSize() + " (B)]\n";
+    }
+
+    /**
+     * Returns the cache line size in bytes.
+     */
+    public int getLineSize() { return super.getLineSize(); }
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/InstructionTLB.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/InstructionTLB.java
new file mode 100644
index 0000000..1dd953e
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/InstructionTLB.java
@@ -0,0 +1,29 @@
+/* $Id: InstructionTLB.java,v 1.12 2009/01/23 04:29:52 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2008-2009 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+/**
+ * Class containing information describing an instruction translation
+ * lookaside buffer (ITLB).
+ *
+ * @author Rick Kufrin
+ * @author Rui Liu
+ */
+public class InstructionTLB extends TLB {
+    public String toString() {
+        return "  [Instruction: " + super.toString() + "]\n";
+    }
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/InstructionTraceCache.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/InstructionTraceCache.java
new file mode 100644
index 0000000..95564c0
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/InstructionTraceCache.java
@@ -0,0 +1,28 @@
+/* $Id: InstructionTraceCache.java,v 1.13 2009/01/23 04:29:52 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2008-2009 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+/**
+ * Class containing information describing an instruction trace cache.
+ *
+ * @author Rick Kufrin
+ * @author Rui Liu
+ */
+public class InstructionTraceCache extends Cache {
+    public String toString() {
+        return "  [Instruction trace: " + super.toString() + "]\n";
+    }
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/MachineInfo.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/MachineInfo.java
new file mode 100644
index 0000000..08fe750
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/MachineInfo.java
@@ -0,0 +1,143 @@
+/* $Id: MachineInfo.java,v 1.30 2012/01/13 20:49:17 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2008-2009, 2011-2012 The Board of Trustees of
+ * the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+import java.util.Set;
+import java.util.TreeSet;
+import org.xml.sax.Attributes;
+
+/**
+ * Class containing information describing characteristics of a particular
+ * computer, or machine.
+ *
+ * @author Rick Kufrin
+ * @author Rui Liu
+ */
+public class MachineInfo {
+
+    // data fields
+    private CPUInfo cpuinfo;
+    private int     cpucount;
+    private float   memorysize;
+    private float   syspagesize;
+
+    // xml parsing helper fields
+    private String tmpValue = "";
+    private String tmpElementName;
+
+    private static final String CPUCOUNTTAG    = "cpucount";
+    private static final String MEMORYSIZETAG  = "memoryinfo";
+    private static final String SYSPAGESIZETAG = "syspagesize";
+
+    static private final Set<String> keySet;
+
+    static {
+	keySet = new TreeSet<String>();
+	keySet.add (CPUCOUNTTAG);
+	keySet.add (MEMORYSIZETAG);
+	keySet.add (SYSPAGESIZETAG);
+    }
+
+    MachineInfo () {
+	cpuinfo = new CPUInfo();
+    }
+
+    static boolean containsKey (String str) {
+	return (keySet.contains (str) || CPUInfo.containsKey (str));
+    }
+
+    void startElement(String uri, String localName, String qName,
+                      Attributes atts) {
+	tmpElementName = qName;
+
+	if (CPUInfo.containsKey (qName)) {
+	    cpuinfo.startElement (uri, localName, qName, atts);
+	}
+
+	tmpValue = "";
+    }
+
+    void characters(char[] ch, int start, int length) {
+	if (CPUInfo.containsKey (tmpElementName)) {
+	    cpuinfo.characters (ch, start, length);
+	} else {
+	    String tmpString = new String (ch, start, length);
+	    if (tmpString.length() != 0) {
+		if (tmpValue.length() == 0) {
+		    tmpValue = tmpString;
+		} else {
+		    tmpValue = tmpValue.concat (tmpString);
+		}
+	    }
+	}
+    }
+
+    void endElement(String uri, String localName, String qName) {
+
+        tmpValue = tmpValue.trim();
+	if (CPUInfo.containsKey (qName)) {
+	    cpuinfo.endElement (uri, localName, qName);
+	} else {
+	    if (qName.equals (CPUCOUNTTAG)) {
+		cpucount = Integer.parseInt (tmpValue);
+	    } else if (qName.equals (MEMORYSIZETAG)) {
+		memorysize = Float.parseFloat (tmpValue);
+	    } else if (qName.equals (SYSPAGESIZETAG)) {
+		syspagesize = Float.parseFloat (tmpValue);
+	    }
+	}
+
+	tmpValue = "";
+    }
+
+    /**
+     * Returns a string representation of this machine information object,
+     * including the number of CPUs, total memory size, system page size,
+     * and the detailed information of the CPUs.
+     */
+    public String toString() {
+        StringBuilder res = new StringBuilder();
+        res.append ("Machine Information:\n");
+	res.append ("  [CPUs:        " + cpucount + "]\n" +
+		    "  [Memory:      " + memorysize + " (MB)]\n" +
+		    "  [Page:        " + syspagesize + " (KB)]\n");
+        return res.toString() + cpuinfo.toString();
+    }
+
+    /**
+     * Returns a <code>CPUInfo</code> object
+     * describing the characteristics of the CPUs on this machine.
+     */
+    public CPUInfo getCPUInfo() { return cpuinfo; }
+
+    /**
+     * Returns the number of CPUs on this machine.
+     */
+    public int getCPUCount() { return cpucount; }
+
+    /**
+     * Returns the amount of installed memory on this machine,
+     * in units of megabytes (MB).
+     */
+    public float getMemorySize() { return memorysize; }
+
+    /**
+     * Returns the operating system (OS) page size, in units
+     * of kilobytes (KB).
+     */
+    public float getSysPageSize() { return syspagesize; }
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_HwpcCountingReport.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_HwpcCountingReport.java
new file mode 100644
index 0000000..ce41f11
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_HwpcCountingReport.java
@@ -0,0 +1,330 @@
+/* $Id: PS_HwpcCountingReport.java,v 1.29 2012/01/13 20:49:17 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2008-2012 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+import org.xml.sax.Attributes;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.List;
+
+/**
+ * Class encapsulating information contained in a PerfSuite hardware
+ * performance report XML document gathered in &quot;counting&quot; mode.
+ *
+ * @author Rick Kufrin
+ * @author Rui Liu
+ */
+public class PS_HwpcCountingReport extends PS_HwpcReport {
+
+    private static final String EDATATAG        = "hwpceventdata";
+    private static final String EVENTTAG        = "hwpcevent";
+    private static final String NAMEATT         = "name";
+    private static final String TYPEATT         = "type";
+    private static final String DERIVEDATT      = "derived";
+    private static final String CLASSATT        = "class";
+    private static final String CLASSVERSIONATT = "version";
+    private static final String DOMAINATT       = "domain";
+    private static final String MPXATT          = "multiplexed";
+    private static final String MPXUSATT        = "multiplex_usec";
+
+    private static final long DEFAULT_MPX_USEC = 10000;
+
+    private ExecutionInfo executionInfo;
+    private MachineInfo machineInfo;
+    private String className;
+    private String classVersion;
+    private String domain;
+
+    private boolean multiplexed;
+    private long multiplex_usec = DEFAULT_MPX_USEC;
+    private Map<String, PS_HwpcEvent> eventMap;
+
+    private String tmpValue = "";
+    private String tmpElementName;
+    private PS_HwpcEvent tmpHwpcEvent;
+
+    PS_HwpcCountingReport () {
+	executionInfo = new ExecutionInfo();
+	machineInfo = new MachineInfo();
+    }
+
+
+    void startElement(String uri, String localName, String qName,
+                      Attributes atts) {
+
+	tmpElementName = qName;
+
+	if (ExecutionInfo.containsKey (qName)) {
+	    executionInfo.startElement (uri, localName, qName, atts);
+	} else if (MachineInfo.containsKey (qName)) {
+	    machineInfo.startElement (uri, localName, qName, atts);
+	} else {
+	    // parse the tags specific to this class (PS_HwpcCountingReport):
+	    //   hwpceventdata
+	    //   hwpcevent
+	    String tagname = qName.trim();
+
+	    if (tagname.equals (EDATATAG)) {
+		className = atts.getValue (CLASSATT);
+		classVersion = atts.getValue (CLASSVERSIONATT); // could be absent
+		domain = atts.getValue (DOMAINATT);
+		multiplexed = (atts.getValue(MPXATT).equals ("yes"));
+		if (atts.getValue (MPXUSATT) != null) {
+		    multiplex_usec = Long.parseLong (atts.getValue (MPXUSATT));
+		}
+	    } else if (tagname.equals (EVENTTAG)) {
+		if (eventMap == null) {
+		    eventMap = new TreeMap<String, PS_HwpcEvent>();
+		}
+		tmpHwpcEvent = new PS_HwpcEvent
+                    (atts.getValue (NAMEATT), atts.getValue (TYPEATT),
+                     atts.getValue (DERIVEDATT));
+	    }
+
+            tmpValue = "";
+	}
+
+    }
+
+    void characters(char[] ch, int start, int length) {
+	if (tmpElementName == null) {
+	    // this is to deal with the case in multi report,
+	    // where character data ("\n  ") appear before any hwpc report element
+	    return;
+	}
+	if (ExecutionInfo.containsKey (tmpElementName)) {
+	    executionInfo.characters(ch, start, length);
+	} else if (MachineInfo.containsKey (tmpElementName)) {
+	    machineInfo.characters(ch, start, length);
+	} else {
+	    String tmpString = new String (ch, start, length);
+	    if (tmpString.length() != 0) {
+		if (tmpValue.length() == 0) {
+		    tmpValue = tmpString;
+		} else {
+		    tmpValue = tmpValue.concat (tmpString);
+		}
+	    }
+	}
+    }
+
+    void endElement(String uri, String localName, String qName) {
+
+        tmpValue = tmpValue.trim();
+	if (ExecutionInfo.containsKey (qName)) {
+	    executionInfo.endElement (uri, localName, qName);
+	} else if (MachineInfo.containsKey (qName)) {
+	    machineInfo.endElement (uri, localName, qName);
+	} else {
+	    if (qName.equals (EVENTTAG)) {
+		tmpHwpcEvent.setCount (Long.parseLong (tmpValue));
+		eventMap.put (tmpHwpcEvent.getName(), tmpHwpcEvent);
+	    }
+	}
+
+	tmpValue = "";
+    }
+	
+
+    /**
+     * Returns a string representation of this hwpc counting report.
+     */
+    public String toString() {
+        StringBuilder res = new StringBuilder();
+	res.append (super.toString());
+
+	res.append (executionInfo.toString());
+	res.append (machineInfo.toString());
+
+        res.append("Event Information\n");
+        res.append("  [Class:       " + className + "]\n");
+	if (classVersion != null) {
+	    res.append("  [Version:     " + classVersion + "]\n");
+	}
+        res.append("  [Domain:      " + domain + "]\n");
+        res.append("  [Multiplexed: " + multiplexed + "]\n");
+	if (multiplex_usec != 0) {
+	    res.append ("  [Multiplex interval: " +
+                        multiplex_usec +" (micro-seconds)]\n");
+	}
+
+        res.append("Event Counts (" + eventMap.size() + " events)\n");
+        for (Map.Entry<String,PS_HwpcEvent> entry : eventMap.entrySet()) {
+	    res.append("  [" + entry.getValue() + "]\n");
+        }
+        return res.toString();
+    }
+
+
+    /**
+     * Returns a map of performance event name/value pairs.
+     * The key is the name of the event, and the value is of type PS_HwpcEvent.
+     */
+    public Map<String,PS_HwpcEvent> getEvents() { return eventMap; }
+
+    /**
+     * Returns the name of the general &quot;class&quot;
+     * of the measurement, one of: &quot;null&quot;,
+     * &quot;PAPI&quot;, or &quot;perfmon&quot;.
+     * This identifies the underlying performance software support.
+     */
+    public String getClassName() { 
+        return className;
+    }
+
+    /**
+     * Returns the version of the underlying performance software;
+     * returns <code>null</code>
+     * if the version string is absent in the input XML file.
+     */
+    public String getClassVersion() {
+        return classVersion;
+    }
+
+    /**
+     * Returns the event domain in effect during the measurement;
+     * one of &quot;user&quot;, &quot;kernel&quot; or &quot;all&quot;.
+     */
+    public String getEventDomain() {
+        return domain;
+    }
+
+    /**
+     * Returns a flag that indicates whether performance counter
+     * multiplexing was in effect during the measurement.
+     */
+    public boolean getMultiplexed() { return multiplexed; }
+
+    /**
+     * Returns the multiplexing period, in microseconds.  Not
+     * meaningful if multiplexing is not in effect.
+     */
+    public long getMultiplexUS() { return multiplex_usec; }
+
+    /**
+     * Returns the information related to the execution of this process/thread,
+     * such as hostname, user name, command name, CPU time consumed,
+     * and the time when the XML file was created.
+     */
+    public ExecutionInfo getExecutionInfo() { return executionInfo; }
+
+    /**
+     * Returns the information of the system, such as information regarding
+     * CPU, size of total memory, and system page size.
+     */
+    public MachineInfo getMachineInfo() { return machineInfo; }
+
+    /**
+     * Returns the wall clock time of this execution, in seconds.
+     */
+    public float getWallSecs () {
+        float mhz = getMachineInfo().getCPUInfo().getClockSpeed();
+        float wallsecs;
+        long wallTicks = getExecutionInfo().getWallTicks();
+        if (0 == wallTicks) {
+            wallsecs = getExecutionInfo().getWallSecs();
+        } else {
+            wallsecs = wallTicks / (mhz * 1.0e6f);
+        }
+        return wallsecs;
+    }
+
+    /**
+     * Returns a map of performance event name/value pairs.
+     * The key is the name of the event,
+     * and the value is the counter value of the event.
+     * Some special name/value pairs are also added manually, specifically,
+     * cpusecs, wallsecs, mhz, and l[0-9]cacheline (such as l2cacheline).
+     *
+     * @throws UnsupportedOperationException if the class of the events
+     *         is not &quot;PAPI&quot; or &quot;perfmon&quot;.
+     */
+    public Map<String,Double> getEventValueMap () {
+
+	Map<String,Double> inMap = new TreeMap<String,Double>();
+
+	// populate inMap with event data
+	for (Map.Entry<String,PS_HwpcEvent> entry : getEvents().entrySet()) {
+	    inMap.put (entry.getKey().toUpperCase(),
+                       new Double(entry.getValue().getCount()));
+	}
+
+	// populate inMap with cpusecs, mhz, wallsecs, l[0-9]cacheline
+	// mhz
+	float mhz = getMachineInfo().getCPUInfo().getClockSpeed();
+	inMap.put ("MHZ", new Double(mhz));
+
+	// cpusecs
+	String cycleCounter = null;
+	if (className.equals("PAPI")) {
+	    cycleCounter = "PAPI_TOT_CYC";
+	} else if (className.equals("perfmon")) {
+	    cycleCounter = "CPU_CYCLES";
+	} else {
+	    String details = "Class name: " + className +
+                ". Metric calculations are currently supported only " +
+                "for class \"PAPI\" and \"perfmon\". " +
+                "cycleCounter event, which is used to calculate CPU time, " +
+                "is not defined for other classes of events.";
+	    throw new UnsupportedOperationException (details);
+	}
+        Double cycleCounterValue = inMap.get(cycleCounter);
+        if (cycleCounterValue != null) {
+            Double cpusecs = new Double (cycleCounterValue / (mhz * 1.0e6));
+            inMap.put ("CPUSECS", cpusecs);
+        }
+
+	// wallsecs
+	double wallsecs;
+	long wallTicks = getExecutionInfo().getWallTicks();
+	if (0 == wallTicks) {
+	    wallsecs = getExecutionInfo().getWallSecs();
+	} else {
+	    wallsecs = wallTicks / (mhz * 1.0e6f);
+	}
+	inMap.put ("WALLSECS", wallsecs);
+
+	//l1cacheline, l2cacheline, ...
+        int cacheLevels = getMachineInfo().getCPUInfo().getCacheLevels();
+        List<List<Cache>> caches = getMachineInfo().getCPUInfo().getCaches();
+        // One time there was an error in the XML file where cacheLevels
+        // was 1, but there was no cache info, so caches was empty, and
+        // caches.get(0) caused an IndexOutOfBound exception.
+        // So added this sanity check.
+        if (caches.size() >= cacheLevels) {
+            for (int i = 0; i < cacheLevels; i++) {
+                String key = "l" + i + "cacheline";
+                List<Cache> cacheList = caches.get (i);
+                if (null == cacheList)
+                    continue;
+                for (Cache cache : cacheList) {
+                    // instruction trace cache does not have a cache linesize
+                    if (! (cache instanceof InstructionTraceCache)) {
+                        inMap.put (("l" + cache.getLevel() + "cacheline")
+                                   .toUpperCase (),
+                                   new Double(cache.getLineSize()));
+                        // Once we add cache line size of this level in the map,
+                        // we can skip to the next cache level.
+                        break;
+                    }
+                }
+            }
+        }
+
+	return inMap;
+	    
+    }
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_HwpcEvent.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_HwpcEvent.java
new file mode 100644
index 0000000..358aeaa
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_HwpcEvent.java
@@ -0,0 +1,118 @@
+/* $Id: PS_HwpcEvent.java,v 1.9 2009/03/25 15:17:46 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2008-2009 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+/**
+ * Class encapsulating hardware performance counter events
+ * information contained in a PerfSuite hardware
+ * performance report XML document gathered in &quot;counting&quot; mode.
+ *
+ * @author Rui Liu
+ */
+public class PS_HwpcEvent {
+    private final String name;  // event name
+    private final String type;  // "preset" or "native"
+    private final boolean derived; // "yes" or "no"
+    private long count;  // count of this event
+    private final String domain; // user, kernel, all
+    private final String className;
+    // name: PAPI, itimer, profil, perfmon, null      @@ itimer and profil?
+    private final String classVersion;
+
+    // used in PS_HwpcCountingReport
+    PS_HwpcEvent (String name, String type, String derived) {
+	this.name = name;
+	this.type = type;
+	this.derived = (derived.equals ("yes"));
+        this.domain = null;
+        this.className = null;
+        this.classVersion = null;
+    }
+    void setCount (long count) { this.count = count; }
+
+    // used in PS_HwpcProfileReport
+    PS_HwpcEvent (String name, String className, String domain,
+                  String classVersion, String type) {
+	this.name = name;
+        this.className = className;
+        this.domain = domain;
+        this.classVersion = classVersion;
+	this.type = type;
+        this.derived = false;
+    }
+
+    /** Returns the name of this event. */
+    public String  getName() { return name; }
+
+    /** Returns the type of this event,
+     * one of &quot;preset&quot; or &quot;native&quot;.
+     */
+    public String  getType() { return type; }
+
+    /** Returns a flag indicating whether this event is a derived event. */
+    public boolean getDerived() { return derived; }
+
+    /** Returns the count for the occurrance of this event
+     * during the program execution.
+     */
+    public long    getCount() { return count; }
+
+    /**
+     * Returns the name of the general &quot;class&quot;
+     * of the measurement, one of: &quot;null&quot;,
+     * &quot;PAPI&quot;, or &quot;perfmon&quot;.
+     * This identifies the underlying performance software support.
+     */
+    public String getClassName() { 
+        return className;
+    }
+
+    /**
+     * Returns the version of the underlying performance software;
+     * returns <code>null</code>
+     * if the version string is absent in the input XML file.
+     */
+    public String getClassVersion() {
+        return classVersion;
+    }
+
+    /**
+     * Returns the event domain in effect during the measurement;
+     * one of &quot;user&quot;, &quot;kernel&quot; or &quot;all&quot;;
+     * returns <code>null</code>
+     * if the domain string is absent in the input XML file.
+     */
+    public String getEventDomain() {
+        return domain;
+    }
+
+    /** Returns a string representation of this event. */
+    public String toString() {
+	StringBuilder res = new StringBuilder();
+	res.append ("Event: " + name);
+        if (className != null)
+            res.append (", Class name: " + className);
+        if (classVersion != null)
+            res.append (", Class version: " + classVersion);
+        if (domain != null)
+            res.append (", Event domain: " + domain);
+        if (type != null)
+            res.append (", Type: " + type);
+        if (count != 0)
+            res.append (", Count: " + count);
+        res.append (", Derived: " + derived);
+	return res.toString();
+    }
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_HwpcPCProfileReport.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_HwpcPCProfileReport.java
new file mode 100644
index 0000000..2e0f97c
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_HwpcPCProfileReport.java
@@ -0,0 +1,302 @@
+/* $Id: PS_HwpcPCProfileReport.java,v 1.9 2012/01/13 20:49:17 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2008-2009, 2011-2012 The Board of Trustees of
+ * the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+import org.xml.sax.Attributes;
+
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.List;
+import java.util.ArrayList;
+
+import org.eclipse.ptp.internal.etfw.feedback.perfsuite.util.PS_Debug;
+
+/**
+ * Class encapsulating information contained in a PerfSuite hardware
+ * performance report XML document gathered in &quot;profile&quot; mode.
+ *
+ * @author Rick Kufrin
+ * @author Rui Liu
+ */
+public class PS_HwpcPCProfileReport extends PS_HwpcReport {
+
+    private static final String PDATATAG        = "hwpcprofiledata";
+    private static final String CLASSATT        = "class";
+    private static final String CLASSVERSIONATT = "version";
+    private static final String PINFOTAG        = "profileinfo";
+    private static final String PEVENTTAG       = "profileevent";
+    private static final String DOMAINATT       = "domain";
+    private static final String TYPEATT         = "type";
+    private static final String NAMEATT         = "name";
+    private static final String DERIVEDATT      = "derived";
+    private static final String THRESHOLDTAG    = "threshold";
+    private static final String TOTALSAMPLESTAG = "totalsamples";
+    private static final String MODULETAG       = "module";
+    private static final String FILEATT         = "file";
+    private static final String OFFSETATT       = "offset";
+    private static final String SAMPLESTAG      = "samples";
+    private static final String SAMPLETAG       = "sample";
+    private static final String PCATT           = "pc";
+
+    private ExecutionInfo executionInfo;
+    private MachineInfo machineInfo;
+    private String className;
+    private String classVersion;
+    private String eventDomain;
+    private String eventType;  // "preset" or "native"
+    private String eventName;
+    private boolean eventDerived;
+    private long   threshold;
+    private long   totalSamples;
+    private List<PS_Module> moduleList;
+
+    private String tmpValue = "";
+    private String tmpElementName;
+    private PS_Module tmpModule;
+    private String tmpPc;
+
+    PS_HwpcPCProfileReport () {
+	executionInfo = new ExecutionInfo();
+	machineInfo = new MachineInfo();
+	moduleList = new ArrayList<PS_Module>();
+    }
+
+
+    void startElement(String uri, String localName, String qName,
+                      Attributes atts) {
+
+	tmpElementName = qName;
+
+	if (ExecutionInfo.containsKey (qName)) {
+	    executionInfo.startElement (uri, localName, qName, atts);
+	} else if (MachineInfo.containsKey (qName)) {
+	    machineInfo.startElement (uri, localName, qName, atts);
+	} else {
+	    // parse the tags specific to this class
+	    String tagname = qName.trim();
+
+	    if (tagname.equals (PDATATAG)) {
+		className = atts.getValue (CLASSATT);
+		classVersion = atts.getValue (CLASSVERSIONATT); // could be absent
+	    } else if (tagname.equals (PEVENTTAG)) {
+		eventDomain = atts.getValue (DOMAINATT);
+		eventType = atts.getValue (TYPEATT);
+		eventName = atts.getValue (NAMEATT);
+		eventDerived = (atts.getValue (DERIVEDATT).equals ("yes"));
+	    } else if (tagname.equals (MODULETAG)) {
+		tmpModule =
+		    new PS_Module (atts.getValue (FILEATT), atts.getValue (OFFSETATT));
+	    } else if (tagname.equals (SAMPLETAG)) {
+		tmpPc = atts.getValue (PCATT);
+	    }
+
+            tmpValue = "";
+	}
+    }
+
+    void characters(char[] ch, int start, int length) {
+	if (tmpElementName == null) {
+	    // this is to deal with the case in multi report,
+	    // where character data ("\n  ") appear before any hwpc report element
+	    return;
+	}
+	if (ExecutionInfo.containsKey (tmpElementName)) {
+	    executionInfo.characters(ch, start, length);
+	} else if (MachineInfo.containsKey (tmpElementName)) {
+	    machineInfo.characters(ch, start, length);
+	} else {
+	    String tmpString = new String (ch, start, length);
+	    if (tmpString.length() != 0) {
+		if (tmpValue.length() == 0) {
+		    tmpValue = tmpString;
+		} else {
+		    tmpValue = tmpValue.concat (tmpString);
+		}
+	    }
+	}
+    }
+
+    void endElement(String uri, String localName, String qName) {
+
+        tmpValue = tmpValue.trim();
+	if (ExecutionInfo.containsKey (qName)) {
+	    executionInfo.endElement (uri, localName, qName);
+	} else if (MachineInfo.containsKey (qName)) {
+	    machineInfo.endElement (uri, localName, qName);
+	} else {
+	    if (qName.equals (SAMPLETAG)) {
+                // Validate the value of tmpPc --
+                // it should be 0 or a positive integer.
+                // Validate the value of tmpValue --
+                // it should be a positive integer.
+                Long pc = -1l;
+                Long count = -1l;
+                try {
+                    pc = Long.parseLong (tmpPc, 16);
+                    count = Long.parseLong (tmpValue);
+                    if (count <= 0) {
+                        PS_Debug.print
+                            (PS_Debug.WARNING, "count (" +
+                             String.valueOf (count) + ") <= 0 for pc " + tmpPc);
+                    }
+                } catch (NumberFormatException e) {
+                    throw new RuntimeException (e);
+                }
+                if (pc >= 0 && (count > 0)) {
+                    tmpModule.addSample (pc, count);
+                }
+	    } else if (qName.equals (MODULETAG)) {
+		moduleList.add (tmpModule);
+	    } else if (qName.equals (THRESHOLDTAG)) {
+		threshold = Long.parseLong (tmpValue);
+	    } else if (qName.equals (TOTALSAMPLESTAG)) {
+		totalSamples = Long.parseLong (tmpValue);
+	    }
+	}
+
+	tmpValue = "";
+    }
+
+    /**
+     * Returns a string representation of this hwpc profile report.
+     */
+    public String toString() {
+        StringBuilder res = new StringBuilder();
+	res.append (super.toString());
+
+	res.append (executionInfo.toString());
+	res.append (machineInfo.toString());
+
+        res.append ("Profile Information\n");
+        res.append ("  [Class:         " + className + "]\n");
+	if (classVersion != null) {
+	    res.append ("  [Version:       " + classVersion + "]\n");
+	}
+        res.append ("  [Event Domain:  " + eventDomain + "]\n");
+        res.append ("  [Event Name:    " + eventName + "]\n");
+        res.append ("  [Event Type:    " + eventType + "]\n");
+        res.append ("  [Event Derived: " + eventDerived + "]\n");
+
+        res.append("Module Counts (" + moduleList.size() + " modules)\n");
+	for (PS_Module module : moduleList) {
+	    res.append (module.toString());
+	}
+        return res.toString();
+    }
+
+
+    /**
+     * Returns the name of the general &quot;class&quot;
+     * of the measurement, one of: &quot;null&quot;,
+     * &quot;PAPI&quot;, or &quot;perfmon&quot;.
+     * This identifies the underlying performance software support.
+     */
+    public String getClassName() { 
+        return className;
+    }
+
+    /**
+     * Returns the version of the underlying performance software;
+     * returns <code>null</code>
+     * if the version string is absent in the input XML file.
+     */
+    public String getClassVersion() {
+        return classVersion;
+    }
+
+    /**
+     * Returns the event domain in effect during the measurement;
+     * one of &quot;user&quot;, &quot;kernel&quot; or &quot;all&quot;.
+     */
+    public String getEventDomain() {
+        return eventDomain;
+    }
+
+    /**
+     * Returns the name of the measured event.
+     */
+    public String getEventName() {
+        return eventName;
+    }
+
+    /**
+     * Returns the type of the event in effect
+     * during the measurement; one of &quot;preset&quot;,
+     * or &quot;native&quot;.
+     */
+    public String getEventType() {
+        return eventType;
+    }
+
+    /**
+     * Returns a flag indicating whether the measured
+     * event is derived.
+     */
+    public boolean getEventDerived() { return eventDerived;}
+
+    /**
+     * Returns the threshold of the measured event;
+     * returns 0 if the threshold is absent in the input XML file.
+     */
+    public long getThreshold() {
+	return threshold;
+    }
+
+    /**
+     * Returns the number of total samples in the measurement.
+     */
+    public long getTotalSamples() {
+	return totalSamples;
+    }
+
+    /**
+     * Returns the list of modules in the measurement.
+     */
+    public List<PS_Module> getModules() {
+	return moduleList;
+    }
+
+    /**
+     * Returns an <code>ExecutionInfo</code> object containing 
+     * the information related to the execution of this process/thread,
+     * such as hostname, user name, command name, CPU time consumed,
+     * and the time when the XML file was created.
+     */
+    public ExecutionInfo getExecutionInfo() { return executionInfo; }
+
+    /**
+     * Returns a <code>MachineInfo</code> object containing
+     * the information of the system, such as the number of
+     * CPUs, the size of total memory, and the system page size.
+     */
+    public MachineInfo getMachineInfo() { return machineInfo; }
+
+    /**
+     * Returns the wall clock time of this execution, in seconds.
+     */
+    public float getWallSecs () {
+        float mhz = getMachineInfo().getCPUInfo().getClockSpeed();
+        float wallsecs;
+        long wallTicks = getExecutionInfo().getWallTicks();
+        if (0 == wallTicks) {
+            wallsecs = getExecutionInfo().getWallSecs();
+        } else {
+            wallsecs = wallTicks / (mhz * 1.0e6f);
+        }
+        return wallsecs;
+    }
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_HwpcProfile.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_HwpcProfile.java
new file mode 100644
index 0000000..13d8396
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_HwpcProfile.java
@@ -0,0 +1,241 @@
+/* $Id: PS_HwpcProfile.java,v 1.1 2011/04/11 20:31:11 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2011 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.List;
+import java.util.ArrayList;
+
+
+/**
+ * Class encapsulating profile information that describes the
+ * profiling event used, the sampling rate, the total number
+ * of collected samples, the locations of the source code
+ * and the number of samples collected at these locations.
+ *
+ * @author Rick Kufrin
+ * @author Rui Liu
+ */
+/*
+ * Non-javadoc comments.
+ *
+ * This class, and the PS_Function, PS_File,
+ * and PS_PModule classes contained in this file, were separated
+ * from PS_HwpcProfileReport.java around March/April 2011, in the
+ * JVMTI Java profiling efforts, to support multiple profiles contained
+ * within the same hwpcprofilereport.  The goal is to support profiling
+ * multiple events in one execution.
+ */
+public class PS_HwpcProfile {
+
+    private String  mapper;
+    private PS_HwpcEvent hwpcEvent;
+    private long   period;
+    private long   totalSamples;
+    private List<PS_PModule> moduleList;
+
+    PS_HwpcProfile () {
+	moduleList = new ArrayList<PS_PModule>();
+    }
+
+    /**
+     * Returns a string representation of this profile.
+     */
+    public String toString() {
+        StringBuilder res = new StringBuilder();
+	res.append (super.toString());
+
+        res.append ("Profile Information\n");
+        res.append ("  Event Info:\n");
+        res.append (hwpcEvent.toString());
+        res.append ("\n");
+
+        res.append ("  Period: " + period + "\n");
+        res.append ("  Total number of samples: " + totalSamples + "\n");
+
+        res.append("Module Counts (" + moduleList.size() + " modules)\n");
+	for (PS_PModule tmpModule : moduleList) {
+            res.append ("Module: " + tmpModule.getName() + "\n");
+            for (PS_File tmpFile : tmpModule.getFiles()) {
+                res.append ("  File: " + tmpFile.getName() + "\n");
+                for (PS_Function tmpFunction : tmpFile.getFunctions()) {
+                    res.append ("    Function: " +
+                                tmpFunction.getName() + "\n");
+                    for (Map.Entry entry : tmpFunction.getMap().entrySet()) {
+                        res.append("      Line number: " + entry.getKey() +
+                                   ", number of samples: " +
+                                   entry.getValue() + "\n");
+                    }
+                }
+            }
+	}
+        return res.toString();
+    }
+
+
+    /**
+     * Returns the facility that was used to do source code mapping;
+     * one of &quot;psbfd&quot; and &quot;binutils&quot;.
+     */
+    public String getMapper() { return mapper; }
+
+    /**
+     * Returns the event that was used to do profiling.
+     */
+    public PS_HwpcEvent getHwpcEvent() { return hwpcEvent; }
+
+    /**
+     * Returns the period (that is, the sampling rate) of the event.
+     */
+    public long getPeriod() { return period;}
+
+    /**
+     * Returns the total number of samples in the profile.
+     */
+    public long getTotalSamples() { return totalSamples; }
+
+    /**
+     * Returns the modules in the profile.
+     */
+    public List<PS_PModule> getModules() { return moduleList; }
+
+    /**
+     * Returns a nested map containing information about the
+     * modules, files, functions, line numbers and number of samples
+     * for the line numbers, in such order.
+     */
+    public Map<String,Map<String,Map<String,Map<Long,Long>>>>
+        getNestedModuleMap() {
+
+        Map<String,Map<String,Map<String,Map<Long,Long>>>>
+            nestedModuleMap =
+            new TreeMap<String,Map<String,Map<String,Map<Long,Long>>>>();
+	for (PS_PModule tmpModule : moduleList) {
+            String module = tmpModule.getName();
+            for (PS_File tmpFile : tmpModule.getFiles()) {
+                String file = tmpFile.getName();
+                for (PS_Function tmpFunction : tmpFile.getFunctions()) {
+                    String func = tmpFunction.getName();
+                    for (Map.Entry<Integer,Long> entry :
+                             tmpFunction.getMap().entrySet()) {
+
+                        int line = entry.getKey().intValue();
+                        Long numSamples = entry.getValue();
+
+                        Map<String,Map<String,Map<Long,Long>>> nestedFileMap;
+                        Map<String,Map<Long,Long>> nestedFuncMap;
+                        Map<Long,Long>  nestedLineMap;
+                        nestedFileMap = nestedModuleMap.get (module);
+                        if (null == nestedFileMap) {
+                            nestedFileMap = new TreeMap<String,Map<String,Map<Long,Long>>>();
+                            nestedModuleMap.put (module, nestedFileMap);
+                        }
+                        nestedFuncMap = nestedFileMap.get (file);
+                        if (null == nestedFuncMap) {
+                            nestedFuncMap =
+                                new TreeMap<String,Map<Long,Long>>();
+                            nestedFileMap.put (file, nestedFuncMap);
+                        }
+                        nestedLineMap = nestedFuncMap.get (func);
+                        if (null == nestedLineMap) {
+                            nestedLineMap = new TreeMap<Long,Long>();
+                            nestedFuncMap.put (func, nestedLineMap);
+                        }
+                        Long value = nestedLineMap.get (Long.valueOf(line));
+                        nestedLineMap.put (Long.valueOf (line),
+                                           value == null ?
+                                           numSamples : (numSamples + value));
+                    }
+                }
+            }
+	}
+        return nestedModuleMap;
+    }
+
+
+    /* The following setter methods are package-private. */
+
+    void setMapper(String in) { mapper = in; }
+
+    void setHwpcEvent(PS_HwpcEvent in) { hwpcEvent = in; }
+
+    void setPeriod(long in) { period = in;}
+
+    void setTotalSamples(long in) { totalSamples = in; }
+
+    void setModules(List<PS_PModule> in) { moduleList = in; }
+
+}
+
+/* The classes below are package-private.  They do not have
+ * javadoc documentation written. */
+class PS_Function {
+    String name;
+    long numSamples;
+    Map<Integer,Long> map;
+    /* Map of line number --> sample count.
+     * We don't expect a file to contain more than 2 G lines,
+     * so used "Integer" as the data type for now.  This is internal
+     * implementation, and can be easily changed later if necessary. */
+    PS_Function(String name) {
+        this.name = name;
+        this.numSamples = 0;
+        map = new TreeMap<Integer,Long>();
+    }
+    void add (int lineNo, long samples) {
+        map.put (lineNo, samples);
+        numSamples += samples;
+    }
+    long getNumSamples() { return numSamples; }
+    String getName() { return name; }
+    Map<Integer,Long> getMap() { return map; }
+}
+
+class PS_File {
+    String name;
+    long numSamples;
+    List<PS_Function> functions;
+    PS_File(String name) {
+        this.name = name;
+        this.numSamples = 0;
+        functions = new ArrayList<PS_Function>();
+    }
+    void add (PS_Function function) {
+        functions.add (function);
+        numSamples += function.getNumSamples();
+    }
+    long getNumSamples() { return numSamples; }
+    List<PS_Function> getFunctions() { return functions; }
+    String getName() { return name; }
+}
+
+class PS_PModule {
+    String name;
+    long numSamples;
+    List<PS_File> files;
+    PS_PModule(String name) {
+        this.name = name;
+        this.numSamples = 0;
+        files = new ArrayList<PS_File>();
+    }
+    void add (PS_File file) {
+        files.add (file);
+        numSamples += file.getNumSamples();
+    }
+    long getNumSamples() { return numSamples; }
+    List<PS_File> getFiles() { return files; }
+    String getName() { return name; }
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_HwpcProfileReport.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_HwpcProfileReport.java
new file mode 100644
index 0000000..bb70b51
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_HwpcProfileReport.java
@@ -0,0 +1,366 @@
+/* $Id: PS_HwpcProfileReport.java,v 1.23 2012/01/13 20:49:17 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2008-2009, 2011-2012 The Board of Trustees of
+ * the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+import java.util.Date;
+import java.text.SimpleDateFormat;
+import java.util.Locale;
+// Used in parsing date when default locale is not en_US.
+
+import org.xml.sax.Attributes;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.List;
+import java.util.ArrayList;
+
+/**
+ * Class encapsulating information contained in a PerfSuite hardware
+ * performance profile report XML document, which contains the source
+ * code locations mapped from program counters (PCs) collected in a
+ * previous profiling measurement.
+ *
+ * @author Rick Kufrin
+ * @author Rui Liu
+ */
+public class PS_HwpcProfileReport extends PS_Report {
+
+    private static final String DATETAG          = "date";
+    private static final String HOSTTAG          = "hostname";
+    private static final String DOMAINTAG        = "domainname";
+    private static final String USERTAG          = "username";
+    private static final String ANNOTATIONTAG    = "annotation";
+    private static final String EXECUTIONINFOTAG = "executioninfo";
+    private static final String MACHINEINFOTAG   = "machineinfo";
+
+    private static final String HWPCPROFILETAG  = "hwpcprofile";
+    private static final String MAPPERATT       = "mapper";
+    private static final String HWPCEVENTTAG    = "hwpcevent";
+    private static final String CLASSATT        = "class";
+    private static final String CLASSVERSIONATT = "version";
+    private static final String TYPEATT         = "type";
+    private static final String NAMEATT         = "name";
+    private static final String DOMAINATT       = "domain";
+
+    private static final String PERIODTAG       = "period";
+    private static final String TOTALSAMPLESTAG = "totalsamples";
+    private static final String MODULETAG       = "module";
+    private static final String FILETAG         = "file";
+    private static final String FUNCTIONTAG     = "function";
+    private static final String LINETAG         = "line";
+    private static final String LINENOATT       = "lineno";
+
+    // ctime() output: "Tue Mar  2 12:48:28 2004".
+    private static final String DATEFORMAT    = "EEE MMM dd HH:mm:ss yyyy";
+
+    private Date    date;
+    private String  hostname;
+    private String  domainname;
+    private String  username;
+    private String  annotation;
+    private boolean inExecutionInfo;
+
+    private ExecutionInfo executionInfo;
+    private MachineInfo machineInfo;
+    private List<PS_HwpcProfile> profileList;
+
+    // Used in SAX XML parsing.
+    private String tmpValue = "";
+    private String tmpElementName;
+
+    // For the profiling event.
+    private String       tmpMapper;
+    private PS_HwpcEvent tmpHwpcEvent;
+    private long         tmpPeriod;
+    private long         tmpTotalSamples;
+
+    // For the profile samples.
+    private int              tmpLineNo;
+    private PS_Function      tmpFunction;
+    private PS_File          tmpFile;
+    private PS_PModule       tmpModule;
+    private List<PS_PModule> tmpModuleList;
+    private PS_HwpcProfile   tmpProfile;
+
+    PS_HwpcProfileReport () {
+	executionInfo = new ExecutionInfo();
+	machineInfo   = new MachineInfo();
+	profileList   = new ArrayList<PS_HwpcProfile>();
+        inExecutionInfo = false;
+    }
+
+
+    void startElement(String uri, String localName, String qName,
+                      Attributes atts) {
+
+	tmpElementName = qName;
+
+        String tagname = qName.trim();
+
+        if (tagname.equals (MACHINEINFOTAG)) {
+            inExecutionInfo = false;
+        } else if (inExecutionInfo) {
+	    executionInfo.startElement (uri, localName, qName, atts);
+	} else if (MachineInfo.containsKey (qName)) {
+	    machineInfo.startElement (uri, localName, qName, atts);
+	} else {
+	    // Parse the tags specific to this class.
+            if (tagname.equals (EXECUTIONINFOTAG)) {
+                inExecutionInfo = true;
+	    } else if (tagname.equals (HWPCPROFILETAG)) {
+		tmpMapper     = atts.getValue (MAPPERATT);
+                tmpModuleList = new ArrayList<PS_PModule>();
+                tmpProfile    = new PS_HwpcProfile ();
+            } else if (tagname.equals (HWPCEVENTTAG)) {
+                tmpHwpcEvent = new PS_HwpcEvent
+                    (atts.getValue (NAMEATT), atts.getValue (CLASSATT),
+                     atts.getValue (DOMAINATT),
+                     atts.getValue (CLASSVERSIONATT),
+                     atts.getValue (TYPEATT));
+	    } else if (tagname.equals (MODULETAG)) {
+		tmpModule =
+		    new PS_PModule (atts.getValue (NAMEATT));
+	    } else if (tagname.equals (FILETAG)) {
+		tmpFile = new PS_File (atts.getValue (NAMEATT));
+	    } else if (tagname.equals (FUNCTIONTAG)) {
+		tmpFunction = new PS_Function (atts.getValue (NAMEATT));
+	    } else if (tagname.equals (LINETAG)) {
+		tmpLineNo =  Integer.parseInt (atts.getValue (LINENOATT));
+	    }
+
+            tmpValue = "";
+	}
+    }
+
+    void characters(char[] ch, int start, int length) {
+	if (tmpElementName == null) {
+	    // This is to deal with the case in multi report,
+	    // where character data ("\n  ") appear before any hwpc report element.
+	    return;
+	}
+	if (inExecutionInfo) {
+	    executionInfo.characters(ch, start, length);
+	} else if (MachineInfo.containsKey (tmpElementName)) {
+	    machineInfo.characters(ch, start, length);
+	} else {
+	    String tmpString = new String (ch, start, length);
+	    if (tmpString.length() != 0) {
+		if (tmpValue.length() == 0) {
+		    tmpValue = tmpString;
+		} else {
+		    tmpValue = tmpValue.concat (tmpString);
+		}
+	    }
+	}
+    }
+
+    void endElement(String uri, String localName, String qName) {
+
+        tmpValue = tmpValue.trim();
+        if (qName.equals (EXECUTIONINFOTAG)) {
+            inExecutionInfo = false;
+        } else if (inExecutionInfo) {
+	    executionInfo.endElement (uri, localName, qName);
+	} else if (MachineInfo.containsKey (qName)) {
+	    machineInfo.endElement (uri, localName, qName);
+	} else {
+            if (qName.equals (DATETAG)) {
+                // SimpleDateFormat.parse() is locale-sensitive,
+                // while as of Jan 2, 2009, the date times in XML reports
+                // generated by psrun and libpshwpc use en_US locale only.
+                // The approach we used is: save user's default locale,
+                // use en_US to parse the date,
+                // then restore user's default locale.
+                Locale savedDefaultLocale = Locale.getDefault();
+                if (! savedDefaultLocale.equals (Locale.US)) {
+                    Locale.setDefault (Locale.US);
+                }
+                SimpleDateFormat df = new SimpleDateFormat(DATEFORMAT);
+                try {
+                    date = df.parse(tmpValue);
+                } catch (java.text.ParseException pe) {
+                    System.err.println
+                        ("Error in parsing date in ExecutionInfo.endElement:" +
+                         " date = \"" + tmpValue + "\".");
+                    throw new RuntimeException (pe);
+                }
+                if (! savedDefaultLocale.equals (Locale.US)) {
+                    Locale.setDefault (savedDefaultLocale);
+                }
+            } else if (qName.equals (HOSTTAG)) {
+                hostname = tmpValue;
+            } else if (qName.equals (DOMAINTAG)) {
+                domainname = tmpValue;
+            } else if (qName.equals (USERTAG)) {
+                username = tmpValue;
+            } else if (qName.equals (ANNOTATIONTAG)) {
+                annotation = tmpValue;
+	    } else if (qName.equals (PERIODTAG)) {
+		tmpPeriod = Long.parseLong (tmpValue);
+	    } else if (qName.equals (TOTALSAMPLESTAG)) {
+		tmpTotalSamples = Long.parseLong (tmpValue);
+	    } else if (qName.equals (MODULETAG)) {
+		tmpModuleList.add (tmpModule);
+	    } else if (qName.equals (FILETAG)) {
+                tmpModule.add (tmpFile);
+	    } else if (qName.equals (FUNCTIONTAG)) {
+                tmpFile.add (tmpFunction);
+	    } else if (qName.equals (LINETAG)) {
+                long tmpNumSamples = Long.parseLong (tmpValue);
+                tmpFunction.add (tmpLineNo, tmpNumSamples);
+	    } else if (qName.equals (HWPCPROFILETAG)) {
+                tmpProfile.setMapper (tmpMapper);
+                tmpProfile.setHwpcEvent (tmpHwpcEvent);
+                tmpProfile.setPeriod (tmpPeriod);
+                tmpProfile.setTotalSamples (tmpTotalSamples);
+                tmpProfile.setModules (tmpModuleList);
+                profileList.add (tmpProfile);
+	    }
+
+	}
+
+	tmpValue = "";
+    }
+
+    /**
+     * Returns a string representation of this hwpc profile report.
+     */
+    public String toString() {
+        StringBuilder res = new StringBuilder();
+	res.append (super.toString());
+
+        res.append("  [Date:        " + date.toString() + "]\n");
+        res.append("  [Hostname:    " + hostname + "]\n");
+        res.append("  [User:        " + username + "]\n");
+        if ( annotation != null ) {
+            res.append("  [Annotation:  " + annotation + "]\n");
+        }
+	res.append (executionInfo.toString());
+	res.append (machineInfo.toString());
+
+        res.append ("Profile Information\n");
+
+        int numProfiles = profileList.size ();
+        if (0 == numProfiles) {
+            res.append ("No profile information is available.\n");
+        }
+
+        for (int prof_idx = 0; prof_idx < numProfiles; prof_idx++) {
+            PS_HwpcProfile cur_profile = profileList.get (prof_idx);
+
+            res.append ("  Event Info:\n");
+            res.append (cur_profile.getHwpcEvent().toString());
+            res.append ("\n");
+
+            res.append ("  Period: " + cur_profile.getPeriod() + "\n");
+            res.append ("  Total number of samples: " +
+                        cur_profile.getTotalSamples() + "\n");
+
+            List<PS_PModule> moduleList = cur_profile.getModules();
+
+            res.append("Module Counts (" + moduleList.size() + " modules)\n");
+            for (PS_PModule tmpModule : moduleList) {
+                res.append ("Module: " + tmpModule.getName() + "\n");
+                for (PS_File tmpFile : tmpModule.getFiles()) {
+                    res.append ("  File: " + tmpFile.getName() + "\n");
+                    for (PS_Function tmpFunction : tmpFile.getFunctions()) {
+                        res.append ("    Function: " +
+                                    tmpFunction.getName() + "\n");
+                        for (Map.Entry entry :
+                                 tmpFunction.getMap().entrySet()) {
+                            res.append("      Line number: " +
+                                       entry.getKey() +
+                                       ", number of samples: " +
+                                       entry.getValue() + "\n");
+                        }
+                    }
+                }
+            }
+        }
+
+        return res.toString();
+    }
+
+
+    /**
+     * Returns the date and time when this profile report was generated
+     * from the original HWPC report.
+     */
+    public Date getDate() { return date; }
+
+    /**
+     * Returns the name of the machine where this profile report was generated
+     * from the original HWPC report.
+     */
+    public String getHostName() { return hostname; }
+
+    /**
+     * Returns the domain name of the machine where this profile report
+     * was generated from the original HWPC report.
+     */
+    public String getDomainName() { return domainname; }
+
+    /**
+     * Returns the name of the user who generated this profile report
+     * from the original HWPC report.
+     */
+    public String getUserName() { return username; }
+
+    /**
+     * Returns the string that was set by the user as
+     * a PerfSuite &quot;annotation&quot; element when this profile report
+     * was generated from the original HWPC report.
+     */
+    public String getAnnotation() { return annotation; }
+
+    /**
+     * Returns an <code>ExecutionInfo</code> object containing 
+     * the information related to the execution of this process/thread,
+     * such as hostname, user name, command name, CPU time consumed,
+     * and the time when the XML file was created.
+     */
+    public ExecutionInfo getExecutionInfo() { return executionInfo; }
+
+    /**
+     * Returns a <code>MachineInfo</code> object containing
+     * the information of the system, such as the number of
+     * CPUs, the size of total memory, and the system page size.
+     */
+    public MachineInfo getMachineInfo() { return machineInfo; }
+
+    /**
+     * Returns the wall clock time of this execution, in seconds.
+     */
+    public float getWallSecs () {
+        float mhz = machineInfo.getCPUInfo().getClockSpeed();
+        float wallsecs;
+        long wallTicks = executionInfo.getWallTicks();
+        if (0 == wallTicks) {
+            wallsecs = executionInfo.getWallSecs();
+        } else {
+            wallsecs = wallTicks / (mhz * 1.0e6f);
+        }
+        return wallsecs;
+    }
+
+    /**
+     * Returns a <code>List&lt;PS_HwpcProfile&gt;</code> object
+     * containing the information of the profiles obtained.
+     */
+    public List<PS_HwpcProfile> getProfiles() { return profileList; }
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_HwpcReport.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_HwpcReport.java
new file mode 100644
index 0000000..3e28f39
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_HwpcReport.java
@@ -0,0 +1,27 @@
+/* $Id: PS_HwpcReport.java,v 1.7 2009/09/16 21:02:30 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2008-2009 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+/**
+ * Abstract class representing the contents of a PerfSuite XML document
+ * gathered through monitoring using hardware performance counters.
+ *
+ * @author Rick Kufrin
+ * @author Rui Liu
+ */
+public abstract class PS_HwpcReport extends PS_Report {
+    public abstract ExecutionInfo getExecutionInfo();
+    public abstract MachineInfo getMachineInfo();
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_MetricDefinition.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_MetricDefinition.java
new file mode 100644
index 0000000..7af7af3
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_MetricDefinition.java
@@ -0,0 +1,123 @@
+/* $Id: PS_MetricDefinition.java,v 1.4 2009/11/04 22:52:00 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2009 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+import java.util.Map;
+import java.util.List;
+import java.io.FileNotFoundException;
+
+/**
+ * Class representing a PerfSuite metric definition.
+ *
+ * @author Rui Liu
+ */
+public class PS_MetricDefinition {
+
+    private PS_MetricDefinitionParser parser;
+
+    /**
+     *  Constructs a <code>PS_MetricDefinition</code> object,
+     *  given the name of a metric definition file,
+     *  and a flag indicating whether resource files for
+     *  localized description strings need to be generated.
+     *  If the flag is true, resource files will be generated
+     *  in the current working directory.
+     *  <p>
+     *  For example, if the given metric definition file name is
+     *  &quot;/foo/bar/xyz.xml&quot;, and it contains description strings of
+     *  the languages &quot;en_US&quot;, &quot;en_UK&quot;,
+     *  &quot;es&quot; and &quot;it&quot;,
+     *  then the base name, as return value of the
+     *  <code>getResourceFileBaseName</code> method, will be &quot;xyz&quot;,
+     *  and the generated resource files will be named
+     *  &quot;xyz_en_US.properties&quot;, &quot;xyz_en_UK.properties&quot;,
+     *  &quot;xyz_es.properties&quot;, &quot;xyz_it.properties&quot;,
+     *  and &quot;xyz.properties&quot;. The last one,
+     *  &quot;xyz.properties&quot;, is the default file to be used if
+     *  the current locale does not match any of the above 4 locales.
+     *  <p>
+     *  Two (2) standard metric definition files
+     *  are included in the PerfSuite distribution:
+     *  &quot;PAPI_metrics.xml&quot; and &quot;perfmon_metrics.xml&quot;.
+     *  Their corresponding resource files containing localized description
+     *  strings are included as well, and will be installed when
+     *  "make install" is performed.
+     *
+     *  @param  filename  the name of a metric definition file
+     *  @param  needsResourceGeneration
+     *     a flag indicating whether resource files for
+     *     localized description strings need to be generated.
+     *     Its value should be <code>false</code>
+     *     if one of the standard metric definition files is used;
+     *     and <code>true</code> if a non-standard metric definition file
+     *     is used.
+     *  @throws FileNotFoundException
+     *     if the file <code>filename</code> does not exist,
+     *     is a directory rather than a regular file,
+     *     or for some other reason cannot be opened for reading.
+     *  @throws IllegalArgumentException
+     *     if <code>filename</code> is <code>null</code>.
+     */
+    public PS_MetricDefinition (String filename,
+                                boolean needsResourceGeneration)
+	throws FileNotFoundException {
+
+	// check the arguments
+	if (filename == null) {
+	    throw new IllegalArgumentException
+                ("Error: metric definition file name is null.");
+	}
+        parser = new PS_MetricDefinitionParser
+            (filename, needsResourceGeneration);
+    }
+
+    /**
+     *  Returns a map of metric definition.
+     *  <p>
+     *  For each entry in the map, the key is the name of the metric,
+     *  and the value is a list of expression tokens as defined in the metric
+     *  definition file. Currently the expression is in postfix notation order,
+     *  also known as reverse Polish notation.
+     *  But there is no commitment to maintain this order forever.
+     *  <p>
+     *  An example map entry is: <br>
+     *  key: &quot;PS_RATIO_GFPINS_CYC&quot;, <br>
+     *  value: a list containing 3 strings in the following order:
+     *  &quot;PAPI_FP_INS&quot;, &quot;PAPI_TOT_CYC&quot;, and &quot;/&quot;.
+     */
+    public Map<String,List<String>> getDefinitionMap() {
+	return parser.getDefinitionMap();
+    }
+
+    /**
+     *  Returns a string representation of the metric definitions,
+     *  including the expression definition and descriptions of various
+     *  languages for each metric defined in the metric definition file.
+     */
+    public String toString() {
+	return parser.toString();
+    }
+
+    /**
+     *  Returns the base name of the resource files associated with
+     *  this metric definition file.
+     *  When generating localized string output,
+     *  use return value of this method to specify the resource file name.
+     */
+    public String getResourceFileBaseName () {
+        return parser.getResourceFileBaseName();
+    }
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_MetricDefinitionParser.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_MetricDefinitionParser.java
new file mode 100644
index 0000000..311f16b
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_MetricDefinitionParser.java
@@ -0,0 +1,323 @@
+/* $Id: PS_MetricDefinitionParser.java,v 1.22 2012/01/13 20:49:17 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2008-2009, 2011-2012 The Board of Trustees of
+ * the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.LinkedHashMap;
+import java.util.Properties;
+import java.io.PrintStream;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileOutputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+
+import org.xml.sax.XMLReader;
+import org.xml.sax.Attributes;
+import org.xml.sax.InputSource;
+import org.xml.sax.helpers.DefaultHandler;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+import org.xml.sax.ErrorHandler;
+
+import javax.xml.parsers.SAXParserFactory;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.eclipse.ptp.internal.etfw.feedback.perfsuite.util.PS_Debug;
+
+/**
+ * Class to parse a PerfSuite metrics definition XML document.
+ *
+ * @author Rui Liu
+ */
+class PS_MetricDefinitionParser extends DefaultHandler {
+
+    // data members
+    private StringBuilder res;
+    private Map<String,List<String>> metricDefinitionMap;
+    private Map<String,Map<String,String>> metricDescriptionMap;
+    private String language;
+    private boolean needsResourceFileGeneration = false;
+
+    // temporary values
+    private String tmpValue = "";
+    private String eventName;
+    private List<String> expressionList;
+    private Map<String,Properties> messageMap;
+
+    private static final String LANGATT        = "lang";
+    private static final String DEFAULT_LANG   = "en_US";
+
+    private String RESOURCE_FILE_PREFIX;
+
+    PS_MetricDefinitionParser (String filename)
+	throws FileNotFoundException {
+        init (filename);
+    }
+
+    PS_MetricDefinitionParser (String filename, boolean needsResGen)
+	throws FileNotFoundException {
+        needsResourceFileGeneration = needsResGen;
+        init (filename);
+    }
+
+    void init (String filename)
+        throws FileNotFoundException {
+
+	// The metric definition map is changed from TreeMap to LinkedHashMap
+	// to preserve the order in which entries are inserted, which is
+	// the order they appear in the metrics definition XML file.
+	metricDefinitionMap = new LinkedHashMap<String,List<String>>();
+	metricDescriptionMap = new LinkedHashMap<String,Map<String,String>>();
+	messageMap = new TreeMap<String,Properties>();
+        RESOURCE_FILE_PREFIX = strip (filename);
+
+	XMLReader xr = getXMLReader (); // could throw RuntimeException
+	xr.setContentHandler(this);
+	FileReader r = new FileReader(filename);
+        // could throw FileNotFoundException, which is one type of IOException
+	try {
+	    xr.parse(new InputSource(r));
+            // could throw IOException, SAXException
+	} catch (IOException e) {
+	    throw new RuntimeException (e);
+	} catch (SAXException e) {
+	    throw new RuntimeException (e);
+	}
+    }
+
+    /**
+     * Strips the leading path elements, then strips out all the parts
+     * after the first dot character ".", to be used as the base name
+     * of generated resource files.
+     */
+    private String strip (String filename) {
+        int lastSeparatorIndex = filename.lastIndexOf (File.separator);
+        // In the case of not finding the File.separator string,
+        // thus lastSeparatorIndex = -1:
+        // since we use lastSeparatorIndex+1 (which is now 0) later,
+        // the value happens to be still correct for use
+        // as first argument of substring() method.
+        // So no adjustment is needed here.
+        int firstDotIndex = filename.indexOf (".", lastSeparatorIndex);
+        if (-1 == firstDotIndex) {
+            return filename.substring (lastSeparatorIndex+1);
+        } else {
+            return filename.substring (lastSeparatorIndex+1, firstDotIndex);
+        }
+    }
+
+    Map<String,List<String>> getDefinitionMap() {
+	return metricDefinitionMap;
+    }
+
+    Map<String,Map<String,String>> getMetricDescriptionMap() {
+	return metricDescriptionMap;
+    }
+
+    public String toString() {
+	StringBuilder resultString = new StringBuilder();
+	// expression string per metric
+	resultString.append ("Expressions:\n");
+	resultString.append (getExpressionString());
+	// description strings (of multiple languages) per metric
+	resultString.append ("\nDescriptions:\n");
+	for (Map.Entry entry : metricDescriptionMap.entrySet()) {
+	    resultString.append (entry.getKey() + ": " + entry.getValue() + "\n");
+	}
+	return resultString.toString();
+    }
+
+    private String getExpressionString() {
+	StringBuilder resultString = new StringBuilder();
+	for (Map.Entry<String,List<String>> entry :
+                 metricDefinitionMap.entrySet()) {
+	    resultString.append (entry.getKey());
+	    resultString.append (":");
+	    List<String> expressionL = entry.getValue();
+	    for (String tmps : expressionL) {
+		resultString.append (" ").append (tmps);
+	    }
+	    resultString.append ("\n");
+	}
+	return resultString.toString();
+    }
+
+    String getResourceFileBaseName () { return RESOURCE_FILE_PREFIX; }
+
+    private void generatePropertiesFiles() {
+	String filename = null;
+	try {
+	    for (Map.Entry<String,Properties> entry : messageMap.entrySet()) {
+		Properties properties = entry.getValue();
+		filename = RESOURCE_FILE_PREFIX + "_" + entry.getKey() + ".properties";
+		properties.store (new FileOutputStream(filename), null);
+	    }
+	    filename = RESOURCE_FILE_PREFIX + ".properties";
+	    messageMap.get(DEFAULT_LANG).store (new FileOutputStream(filename), null);
+	} catch (IOException e) {
+	    System.err.println
+                ("error in writing properties to file \"" + filename +
+                 "\", error message: " + e.getMessage());
+	    throw new RuntimeException (e);
+	}
+    }
+
+    private XMLReader getXMLReader() {
+	SAXParserFactory spf = SAXParserFactory.newInstance();
+	spf.setNamespaceAware(true);
+	SAXParser saxParser;
+	XMLReader xr;
+	try {
+	    saxParser = spf.newSAXParser();
+            // could throw ParserConfigurationException, SAXException
+	    xr = saxParser.getXMLReader(); // could throw SAXException
+	} catch (SAXException e) {
+	    throw new RuntimeException (e);
+	} catch (ParserConfigurationException e) {
+	    throw new RuntimeException (e);
+	}
+	xr.setErrorHandler(new MyErrorHandler(System.err));
+	return xr;
+    }
+
+
+    ////////////////////////////////////////////////////////////////////
+    // Event handlers.
+    ////////////////////////////////////////////////////////////////////
+
+    public void startElement(String uri, String localName,
+                             String qName, Attributes attributes) {
+	if (qName.equals ("metric")) {
+	    expressionList = new ArrayList<String>();
+	}
+	else if (qName.equals ("description")) {
+	    language = attributes.getValue (LANGATT);
+	    if (language == null) {
+		language = DEFAULT_LANG;
+	    }
+	}
+
+	tmpValue = "";
+    }
+
+    public void endElement(String uri, String localName, String qName) {
+
+        tmpValue = tmpValue.trim();
+	if (qName.equals ("name")) {
+	    eventName = new String(tmpValue);
+	} else if (qName.equals("ci") || qName.equals("cn")) {
+	    expressionList.add (tmpValue);
+	} else if (qName.equals("plus")) {
+	    expressionList.add ("+");
+	} else if (qName.equals("minus")) {
+	    expressionList.add ("-");
+	} else if (qName.equals("times")) {
+	    expressionList.add ("*");
+	} else if (qName.equals("divide")) {
+	    expressionList.add ("/");
+	} else if (qName.equals("abs")) {
+	    expressionList.add ("||");
+	} else if (qName.equals("metric")) {
+	    if (metricDefinitionMap.put (eventName, expressionList) != null) {
+                PS_Debug.print
+                    (PS_Debug.WARNING,
+                     "Two metric definitions with the same name '" +
+                     eventName + "' appeared.");
+            }
+	} else if (qName.equals("description")) {
+	    Map<String,String> map = metricDescriptionMap.get (eventName);
+	    if (map == null) {
+		map = new TreeMap<String,String>();
+	    }
+	    map.put (language, tmpValue);
+	    metricDescriptionMap.put (eventName, map);
+
+	    Properties properties = messageMap.get (language);
+	    if (properties == null) {
+		properties = new Properties();
+	    }
+	    properties.setProperty (eventName, tmpValue);
+	    messageMap.put (language, properties);
+
+	} else if (qName.equals("psmetrics")) {
+            if (needsResourceFileGeneration) {
+                generatePropertiesFiles();
+            }
+	}
+	
+	tmpValue = "";
+    }
+
+
+    public void characters(char[] ch, int start, int length) {
+	String tmpString = new String (ch, start, length);
+	if (tmpString.length() != 0) {
+	    if (tmpValue.length() == 0) {
+		tmpValue = tmpString;
+	    } else {
+		tmpValue = tmpValue.concat (tmpString);
+	    }
+	}
+    }
+
+    // Error handler to report errors and warnings
+    private static class MyErrorHandler implements ErrorHandler {
+        private PrintStream out;
+
+        MyErrorHandler(PrintStream out) {
+            this.out = out;
+        }
+
+        /**
+         * Returns a string describing parse exception details
+         */
+        private String getParseExceptionInfo(SAXParseException spe) {
+            String systemId = spe.getSystemId();
+            if (systemId == null) {
+                systemId = "null";
+            }
+            String info = "Public ID: " + spe.getPublicId() +
+		", System ID: " + spe.getSystemId() +
+                ", Line number: " + spe.getLineNumber() +
+                ", Column number: " + spe.getColumnNumber() +
+		", Message: " + spe.getMessage();
+            return info;
+        }
+
+        // The following methods are standard SAX ErrorHandler methods.
+        // See SAX documentation for more info.
+
+        public void warning(SAXParseException spe) throws SAXException {
+            String message = "Warning: " + getParseExceptionInfo(spe);
+            throw new SAXException(message);
+        }
+        
+        public void error(SAXParseException spe) throws SAXException {
+            String message = "Error: " + getParseExceptionInfo(spe);
+            throw new SAXException(message);
+        }
+
+        public void fatalError(SAXParseException spe) throws SAXException {
+            String message = "Fatal Error: " + getParseExceptionInfo(spe);
+            throw new SAXException(message);
+        }
+    }
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_Module.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_Module.java
new file mode 100644
index 0000000..05e4e61
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_Module.java
@@ -0,0 +1,80 @@
+/* $Id: PS_Module.java,v 1.7 2009/11/05 16:26:31 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2008-2009 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+import org.xml.sax.Attributes;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.List;
+import java.util.ArrayList;
+
+/**
+ * Class encapsulating module information contained in a PerfSuite hardware
+ * performance report XML document gathered in &quot;profile&quot; mode.
+ * A module is a combination of file name and the offset into the file.
+ *
+ * @author Rui Liu
+ */
+public class PS_Module {
+    private final String file;
+    private final String offset;
+    Map<Long,Long> sampleMap;
+    PS_Module (String file, String offset) {
+	this.file = file;
+	this.offset = offset;
+	sampleMap = new TreeMap<Long,Long>();
+    }
+    void addSample (Long pc, long count) {
+	sampleMap.put (pc, count);
+    }
+
+    /** Returns the name of the file. */
+    public String getFile() { return file; }
+
+    /** Returns the offset into the file. */
+    public String getOffset() { return offset; }
+
+    /**
+     * Returns the map of programming counter (PC) value / count pairs.
+     * The count for a PC value of pc1 indicates that 
+     * in how many samples the programming counter
+     * of the running program had the value of pc1.
+     */
+    public Map<Long,Long> getSampleMap() { return sampleMap; }
+
+    /**
+     * Returns the number of samples in this module.
+     */
+    public long getNumSamples() {
+        long sum = 0;
+        for (Map.Entry<Long,Long> pairs : sampleMap.entrySet()) {
+            sum += pairs.getValue();
+        }
+        return sum;
+    }
+
+    /** Returns a string representation of this module. */
+    public String toString() {
+	StringBuilder res = new StringBuilder();
+	res.append ("  [file: " + file + ", offset: " + offset + "]\n");
+	for (Map.Entry<Long,Long> entry : sampleMap.entrySet()) {
+	    res.append ("    [").append (entry.getKey().toString())
+                .append (" = ").append (entry.getValue().toString())
+                .append ("]\n");
+	}
+	return res.toString();
+    }
+}
+
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_MultiHwpcProfileReport.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_MultiHwpcProfileReport.java
new file mode 100644
index 0000000..6d32c88
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_MultiHwpcProfileReport.java
@@ -0,0 +1,61 @@
+// $Id: PS_MultiHwpcProfileReport.java,v 1.2 2009/11/05 16:26:31 ruiliu Exp $
+
+/*******************************************************************************
+ * Copyright (c) 2009 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+import java.util.List;
+import java.util.ArrayList;
+
+/**
+ * Class that represents a collection of PerfSuite hardware
+ * performance profile reports, known as a &quot;multihwpcprofilereport&quot;.
+ *
+ * @author Rui Liu
+ */
+public class PS_MultiHwpcProfileReport extends PS_Report {
+
+    private List<PS_HwpcProfileReport> reportList;
+
+    PS_MultiHwpcProfileReport() {
+        reportList = new ArrayList<PS_HwpcProfileReport>();
+    }
+
+    void addReport(PS_HwpcProfileReport report) {
+        reportList.add (report);
+    }
+
+    /**
+     * Returns a list containing the component hwpcreports that
+     * make up the multihwpcreport.
+     */
+    public List<PS_HwpcProfileReport> getReports() {
+        return reportList;
+    }
+
+    /**
+     * Returns a string representation of this multi hwpc report.
+     */
+    public String toString() {
+        StringBuilder res = new StringBuilder();
+        res.append ("Number of reports in the MultiHwpcProfileReport: ");
+        res.append (reportList.size());
+        res.append ("\n\n");
+        for (PS_HwpcProfileReport tmpr : reportList) {
+            res.append (tmpr.toString());
+            res.append ("\n"); // separator for individual hwpc profile reports
+        }
+        return res.toString();
+    }
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_MultiHwpcReport.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_MultiHwpcReport.java
new file mode 100644
index 0000000..edb8e68
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_MultiHwpcReport.java
@@ -0,0 +1,61 @@
+/* $Id: PS_MultiHwpcReport.java,v 1.4 2009/11/05 16:26:31 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2008-2009 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+import java.util.List;
+import java.util.ArrayList;
+
+/**
+ * Class that represents a collection of PerfSuite hardware
+ * performance reports, known as a &quot;multihwpcreport&quot;.
+ *
+ * @author Rui Liu
+ */
+public class PS_MultiHwpcReport extends PS_Report {
+
+    private List<PS_HwpcReport> reportList;
+
+    PS_MultiHwpcReport() {
+        reportList = new ArrayList<PS_HwpcReport>();
+    }
+
+    void addReport(PS_HwpcReport report) {
+        reportList.add (report);
+    }
+
+    /**
+     * Returns a list containing the component hwpcreports that
+     * make up the multihwpcreport.
+     */
+    public List<PS_HwpcReport> getReports() {
+        return reportList;
+    }
+
+    /**
+     * Returns a string representation of this multi hwpc report.
+     */
+    public String toString() {
+        StringBuilder res = new StringBuilder();
+        res.append ("Number of reports in the MultiHwpcReport: ");
+        res.append (reportList.size());
+        res.append ("\n\n");
+        for (PS_HwpcReport tmpr : reportList) {
+            res.append (tmpr.toString());
+            res.append ("\n"); // separator for individual hwpc reports
+        }
+        return res.toString();
+    }
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_Report.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_Report.java
new file mode 100644
index 0000000..66d71a7
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_Report.java
@@ -0,0 +1,274 @@
+/* $Id: PS_Report.java,v 1.20 2011/03/30 20:42:48 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2008-2011 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+import java.io.InputStream;
+import org.xml.sax.Attributes;
+
+import java.io.FileNotFoundException;
+import java.net.MalformedURLException;
+import java.io.IOException;
+
+/**
+ * Abstract base class representing a PerfSuite
+ * report XML document.
+ *
+ * @author Rui Liu
+ */
+public abstract class PS_Report {
+
+    /**
+     * Returns an object of class PS_Report, which is
+     * the result of parsing a PerfSuite report XML document
+     * with the given file name, with the DTD validation on.
+     * The returned type will be one of the types of the subclass
+     * of PS_Report, which is one of a hwpc counting report,
+     * a hwpc profile report, a resource report, or a multi hwpc report.
+     * <p>
+     * If the given file name is <code>null</code>, standard input is used
+     * as input. This functionality can be used to pipe data in.
+     * <p>
+     * The environment variable <code>PS_DEBUG</code> can be used to control
+     * whether or not debug information on standard out and standard error
+     * are printed out. If it is set to a positive integer, the
+     * debug information will be printed out.
+     *
+     * @param   filename   the name of the PerfSuite report to parse.
+     * @return  an object of class PS_Report, which is the result of parsing
+     *          the given PerfSuite report; <code>null</code> is returned
+     *          if the given file is not a valid, currently supported
+     *          PerfSuite report XML file.
+     * @throws  FileNotFoundException  if the file does not exist,
+     *          is a directory rather than a regular file,
+     *          or for some other reason cannot be opened for reading.
+     * @throws  MalformedURLException  if an unknown protocol is specified.
+     *
+     */
+    static public PS_Report newInstance (String filename)
+	throws FileNotFoundException, MalformedURLException {
+
+	//if (null == filename)
+	//    throw new IllegalArgumentException("filename is null");
+
+	return newInstance (filename, true);
+    }
+
+    /**
+     * Returns an object of class PS_Report, which is
+     * the result of parsing a PerfSuite report XML document
+     * with the given file name, with the given DTD validation option.
+     * The returned type will be one of the types of the subclass
+     * of PS_Report, which is one of a hwpc counting report,
+     * a hwpc profile report, a resource report, or a multi hwpc report.
+     * <p>
+     * If the given file name is <code>null</code>, standard input is used
+     * as input. This functionality can be used to pipe data in.
+     * <p>
+     * The environment variable <code>PS_DEBUG</code> can be used to control
+     * whether or not debug information on standard out and standard error
+     * are printed out. If it is set to a positive integer, the
+     * debug information will be printed out.
+     *
+     * @param   filename   the name of the PerfSuite report to parse.
+     * @param   validateDTD
+     *              a flag indicating whether to do DTD validation or not.
+     * @return  an object of class PS_Report, which is the result of parsing
+     *          the given PerfSuite report; <code>null</code> is returned
+     *          if the given file is not a valid, currently supported
+     *          PerfSuite report XML file.
+     * @throws  FileNotFoundException  if the file does not exist,
+     *          is a directory rather than a regular file,
+     *          or for some other reason cannot be opened for reading.
+     * @throws  MalformedURLException  if an unknown protocol is specified.
+     * @throws  UnsupportedOperationException if the given report is a
+     *          PerfSuite HWPC report with the <code>mode</code> attribute
+     *          present, but the value of the <code>mode</code> attribute
+     *          is neither &quot;count&quot; nor &quot;profile&quot;.
+     *          <br>
+     *          The <code>UnsupportedOperationException</code>
+     *          can be thrown only if DTD validation is set to false;
+     *          if DTD validation is set to true,
+     *          since hwpcreport.dtd specifies that the only allowed values
+     *          for <code>mode</code> attribute
+     *          are &quot;count&quot; and &quot;profile&quot;,
+     *          SAX parser will validate it
+     *              and throw a <code>SAXException</code>,
+     *          then this API will convert it
+     *              to a <code>RuntimeException</code>.
+     */
+    static public PS_Report newInstance (String filename, boolean validateDTD)
+	throws FileNotFoundException, MalformedURLException {
+
+	//if (null == filename)
+	//    throw new IllegalArgumentException("filename is null");
+
+	PS_ReportParser rp = new PS_ReportParser (filename, validateDTD);
+	return rp.getReport();
+    }
+
+    /**
+     * Returns an object of class PS_Report, which is
+     * the result of parsing a PerfSuite report XML document
+     * with the given input stream, with the given DTD validation option.
+     * The returned type will be one of the types of the subclass
+     * of PS_Report, which is one of a hwpc counting report,
+     * a hwpc profile report, a resource report, or a multi hwpc report.
+     * <p>
+     * The environment variable <code>PS_DEBUG</code> can be used to control
+     * whether or not debug information on standard out and standard error
+     * are printed out. If it is set to a positive integer, the
+     * debug information will be printed out.
+     *
+     * @param   ais   an InputStream object containing the content to parse.
+     * @param   validateDTD
+     *              a flag indicating whether to do DTD validation or not.
+     * @return  an object of class PS_Report, which is the result of parsing
+     *          the given PerfSuite report; <code>null</code> is returned
+     *          if the given file is not a valid, currently supported
+     *          PerfSuite report XML file.
+     * @throws  IOException   an IO exception from the parser, possibly from
+     *          a byte stream or character stream supplied by the application.
+     * @throws  UnsupportedOperationException if the given report is a
+     *          PerfSuite HWPC report with the <code>mode</code> attribute
+     *          present, but the value of the <code>mode</code> attribute
+     *          is neither &quot;count&quot; nor &quot;profile&quot;.
+     *          <br>
+     *          The <code>UnsupportedOperationException</code>
+     *          can be thrown only if DTD validation is set to false;
+     *          if DTD validation is set to true,
+     *          since hwpcreport.dtd specifies that the only allowed values
+     *          for <code>mode</code> attribute
+     *          are &quot;count&quot; and &quot;profile&quot;,
+     *          SAX parser will validate it
+     *              and throw a <code>SAXException</code>,
+     *          then this API will convert it
+     *              to a <code>RuntimeException</code>.
+     */
+    static public PS_Report newInstance (InputStream ais, boolean validateDTD)
+        throws IOException {
+
+	if (null == ais) {
+	    throw new IllegalArgumentException("The input stream is null");
+        }
+
+	PS_ReportParser rp = new PS_ReportParser (ais, validateDTD);
+	return rp.getReport();
+    }
+
+    /**
+     * Exactly like the method
+     * <code>newInstance (String filename, boolean validateDTD)</code>,
+     * except that the XML content could be generated in a string buffer,
+     * which can be obtained after this method by calling
+     * <code>getXmlBuf()</code>.
+     *
+     * Additional parameter besides those in
+     * <code>newInstance (String filename, boolean validateDTD)</code>:
+     *
+     * @param genXmlType 
+     *      the type indicating how the XML content should be generated,
+     *      with the following meanings:
+     *       0: don't generate XML file;
+     *       1: generate the same level of indentation,
+     *          with top level element tags such as
+     *          "&lt;hwpcreport" starting from the first column in a line
+     *          -- for extract "--extract";
+     *       2: add one level of indentation in XML content
+     *           -- for combination "-c" and XML output "-x".
+     */
+     static public PS_Report newInstanceGenXML
+        (String filename, boolean validateDTD, int genXmlType)
+	throws FileNotFoundException, MalformedURLException {
+
+	PS_ReportParser rp = new PS_ReportParser
+            (filename, validateDTD, genXmlType);
+	return rp.getReport();
+    }
+
+    /**
+     * Added package private constructor to disallow use of the constructor
+     * outside of this package.
+     */
+    PS_Report() {
+    }
+
+    /**
+     * Returns a string describing the DTD version of
+     * this PerfSuite report XML document.
+     */
+    public String getVersion() {
+	return version;
+    }
+
+    /**
+     * Returns a string describing the program
+     * that generates this PerfSuite report XML document.
+     */
+    public String getGenerator() {
+	return generator;
+    }
+
+    void setVersion(String ver) {
+	if (ver == null) {
+	    version = "N/A";
+	} else {
+	    version = ver;
+	}
+    }
+
+    void setGenerator(String gen) {
+	if (gen == null) {
+	    generator = "N/A";
+	} else {
+	    generator = gen;
+	}
+    }
+
+    void startElement(String uri, String localName,
+                      String qName, Attributes attributes) {
+    }
+
+    void endElement(String uri, String localName, String qName) {
+
+    }
+
+    void characters(char[] ch, int start, int length) {
+
+    }
+
+    /**
+     * Returns a string describing the DTD version
+     * and the generator of this report.
+     */
+    public String toString() {
+        StringBuilder res = new StringBuilder();
+	res.append ("  Version:   " + version + "\n");
+	res.append ("  Generator: " + generator + "\n");
+        return res.toString();
+    }
+
+    public void setXmlBuf (StringBuilder buf) { xmlBuf = buf; }
+
+    /**
+     * Returns the string buffer that contains the XML content
+     * generated at the parsing time.
+     */
+    public StringBuilder getXmlBuf() { return xmlBuf; }
+
+    private String version;
+    private String generator;
+
+    private StringBuilder xmlBuf;
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_ReportParser.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_ReportParser.java
new file mode 100644
index 0000000..89ed3f7
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_ReportParser.java
@@ -0,0 +1,481 @@
+/* $Id: PS_ReportParser.java,v 1.36 2012/01/13 20:49:17 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2008-2012 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+import java.io.PrintStream;
+import java.io.InputStream;
+import java.io.File;
+import java.io.FileReader;
+import java.io.ByteArrayInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.net.MalformedURLException;
+
+import org.xml.sax.XMLReader;
+import org.xml.sax.Attributes;
+import org.xml.sax.InputSource;
+import org.xml.sax.helpers.XMLReaderFactory;
+import org.xml.sax.helpers.DefaultHandler;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.EntityResolver;
+
+import javax.xml.parsers.SAXParserFactory;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.eclipse.ptp.internal.etfw.feedback.perfsuite.util.PS_Debug;
+import org.eclipse.ptp.internal.etfw.feedback.perfsuite.util.PS_Environment;
+
+/**
+ * Class to parse a PerfSuite report XML document.
+ *
+ * @author Rui Liu
+ */
+// @@ Use Locator to report line number, col number if exceptions occur.
+class PS_ReportParser extends DefaultHandler {
+
+    static private XMLReader xmlReaderValidating;
+    static private XMLReader xmlReaderNonValidating;
+
+    private PS_Report report;
+    private PS_MultiHwpcReport multiReport;
+    private PS_MultiHwpcProfileReport multiProfileReport;
+    private int genXmlType;
+    /*
+     0: don't generate XML file;
+     1: generate the same level of indentation,
+        with top level element tags such as
+        "<hwpcreport" starting from the first column in a line
+        -- for extract "--extract";
+     2: add one level of indentation in XML content
+        -- for combination "-c" and XML output "-x".
+    */
+    private StringBuilder xmlBuf;
+    private String tmpValue = "";
+    private int xmlDepth = 0;
+    private static final int xmlIndent;
+
+    static {
+        String var = "PSPROCESS_XML_INDENT";
+        int tmpind = PS_Environment.getNonNegativeInteger (var);
+        if (tmpind != -1) {
+            xmlIndent = tmpind;
+        } else {
+            PS_Debug.print
+                (PS_Debug.WARNING, "Wrong format/value for " + var +
+                 ". Using the default value of 4...");
+            xmlIndent = 4;
+        }
+    }
+
+    PS_ReportParser (String filename, boolean validateDTD, int genXmlType)
+	throws FileNotFoundException, MalformedURLException {
+        this.genXmlType = genXmlType;
+        ctorHelper (filename, validateDTD);
+    }
+
+    PS_ReportParser (String filename, boolean validateDTD)
+	throws FileNotFoundException, MalformedURLException {
+        ctorHelper (filename, validateDTD);
+    }
+
+    PS_ReportParser (InputStream ais, boolean validateDTD)
+        throws IOException {
+
+        if (null == ais) {
+            throw new IllegalArgumentException ("The input stream is null");
+        }
+
+	XMLReader xr = getXMLReader (validateDTD);
+	xr.setContentHandler(this);
+	xr.setEntityResolver(this);
+
+        InputSource is = new InputSource (ais);
+        try {
+            xr.parse (is);
+            // Could throw IOException, SAXException.
+	} catch (SAXException e) {
+            /* Change SAXException to RuntimeException, as using SAX or
+             * DOM is a choice of implementation.  It should not be
+             * exposed in the API. */
+	    throw new RuntimeException (e);
+        }
+    }
+
+    private void ctorHelper (String filename, boolean validateDTD)
+	throws FileNotFoundException, MalformedURLException {
+
+	XMLReader xr = getXMLReader (validateDTD);
+	xr.setContentHandler(this);
+	xr.setEntityResolver(this);
+
+        InputSource is = null;
+
+        if (filename != null) {
+            try {
+                FileReader r = new FileReader(filename);
+                // could throw FileNotFoundException
+                is = new InputSource (r);
+            } catch (FileNotFoundException e) {
+                // Is it a URL?
+                is = new InputSource (filename);
+            }
+        } else {
+            is = new InputSource (System.in);
+        }
+
+        try {
+            xr.parse (is);
+            // could throw IOException, SAXException
+        } catch (FileNotFoundException e) {
+            throw e;
+        } catch (MalformedURLException e) {
+            throw e;
+        } catch (NullPointerException e) {
+            PS_Debug.print
+                (PS_Debug.WARNING, "A NullPointerException was thrown, " +
+                 "usually due to a malformed URL such as http:/illinois.edu, " +
+                 "so change it to a MalformedURLException. " +
+                 "The original NullPointerException was: \n");
+            if (PS_Debug.getLevel() >= PS_Debug.WARNING) {
+                e.printStackTrace();
+            }
+	    throw new MalformedURLException (filename);
+	} catch (IOException e) {
+	    throw new RuntimeException (e);
+	} catch (SAXException e) {
+	    throw new RuntimeException (e);
+        } catch (UnsupportedOperationException e) {
+            throw e;
+        } catch (Exception e) {
+            throw new RuntimeException (e);
+        }
+    }
+
+    PS_Report getReport() {
+	if (multiReport != null) {
+	    return multiReport;
+        } else if (multiProfileReport != null) {
+	    return multiProfileReport;
+	} else {
+	    return report;
+	}
+    }
+
+    private XMLReader getXMLReader(boolean validateDTD) {
+
+	if (validateDTD && (xmlReaderValidating != null)) {
+	    return xmlReaderValidating;
+	} else if ( (! validateDTD) && (xmlReaderNonValidating != null) ) {
+	    return xmlReaderNonValidating;
+	} else {
+	    SAXParserFactory spf = SAXParserFactory.newInstance();
+	    spf.setNamespaceAware(true);
+	    spf.setValidating(validateDTD);
+	    SAXParser saxParser;
+	    XMLReader xr;
+	    try {
+		saxParser = spf.newSAXParser();
+                // could throw ParserConfigurationException, SAXException
+		xr = saxParser.getXMLReader(); // could throw SAXException
+	    } catch (SAXException e) {
+		throw new RuntimeException (e);
+	    } catch (ParserConfigurationException e) {
+		throw new RuntimeException (e);
+	    }
+	    xr.setErrorHandler(new MyErrorHandler(System.err));
+	    if (validateDTD) {
+		xmlReaderValidating = xr;
+	    } else {
+		xmlReaderNonValidating = xr;
+	    }
+	    return xr;
+	}
+
+    }
+
+
+    ////////////////////////////////////////////////////////////////////
+    // Event handlers.
+    ////////////////////////////////////////////////////////////////////
+
+    public InputSource resolveEntity(String publicId, String systemId){
+	// typically publicId = null, systemId =
+        // "file:///usr/local/share/perfsuite/dtds/pshwpc/hwpcreport.dtd"
+	String filename;
+	final String FILE_PREFIX= "file://";
+	if (systemId.startsWith (FILE_PREFIX)) {
+	    filename = systemId.substring(FILE_PREFIX.length());
+	} else {
+	    filename = systemId;
+	}
+	// if for any reason the dtd file can not be found and read,
+	// return an empty byte stream, to skip the DTD entity parsing.
+	// This is particularly needed
+        // before the DTD files are installed on the system.
+	// An alternative implementation is to use File, and file.canRead().
+	// Both are tested to be working.
+	try {
+	    FileReader dtd = new FileReader (filename);
+	    return new InputSource (dtd);
+	} catch (FileNotFoundException exception) {
+            PS_Debug.print
+                (PS_Debug.WARNING, "the DTD file \"" + filename +
+                 "\" does not exist, " +
+                 "is a directory rather than a regular file, " +
+                 "or for some other reason cannot be opened for reading." +
+                 " Ignoring the DTD file...");
+	    return new InputSource(new ByteArrayInputStream(new byte[0]));    
+	}
+    }
+
+    /* A helper method to fill the opening tag part.
+     * For hwpcreport and hwpcprofilereport,
+     *     adds xmlns, but does not prepend newline;
+     * for other tags,
+     *     does not add xmlns, but prepends newline.
+     */
+    private void fillXmlBuf (String tagname, Attributes attributes,
+                             StringBuilder xmlBuf) {
+        if ( (genXmlType != 0) && (xmlBuf != null) ) {
+            String nsStr = "";
+            if ( (tagname.equals ("hwpcreport")) ||
+                 (tagname.equals ("hwpcprofilereport")) ) {
+                nsStr = " xmlns:perfsuite=\"http://perfsuite.ncsa.uiuc.edu/\"";
+            } else {
+                xmlBuf.append ("\n");
+            }
+            xmlBuf.append (spaces(xmlDepth * xmlIndent))
+                .append ("<").append (tagname).append (nsStr);
+            int asize = attributes.getLength();
+            if (asize > 0) {
+                for (int aindex = 0; aindex < asize; aindex++) {
+                    // Replace "&" and "<" with "&amp;" and "&lt;",
+                    // so that the attribute values are valid XML-syntax-wise.
+                    // "&" and "<" are used in C++ method signatures
+                    // such as in NAMD:
+                    //   ResizeArray<GenericMol*>::add(GenericMol* const&)
+                    xmlBuf.append (" ")
+                        .append (attributes.getLocalName(aindex))
+                        .append ("=\"")
+                        .append (attributes.getValue(aindex)
+                                 .replace("&", "&amp;")
+                                 .replace("<", "&lt;"))
+                        .append ("\"");
+                }
+            }
+            xmlBuf.append (">");
+        }
+    }
+
+    public void startElement(String uri, String localName,
+                             String qName, Attributes attributes)
+    {
+	String tagname = qName.trim();
+	PS_Report tmpReport = null;
+	if (tagname.equals ("multihwpcreport")) {
+	    multiReport = new PS_MultiHwpcReport();
+	    tmpReport = multiReport;
+	}
+	else if (tagname.equals ("multihwpcprofilereport")) {
+	    multiProfileReport = new PS_MultiHwpcProfileReport();
+	    tmpReport = multiProfileReport;
+	}
+	else if (tagname.equals ("resourcereport")) {
+	    report = new PS_ResourceReport();
+	    tmpReport = report;
+	}
+	else if (tagname.equals ("hwpcprofilereport")) {
+	    report = new PS_HwpcProfileReport();
+	    tmpReport = report;
+            if (genXmlType != 0) {
+                xmlDepth = 0;
+                if (genXmlType == 2) {
+                    // For combination "-c", start with depth 1.
+                    xmlDepth = 1;
+                }
+                xmlBuf = new StringBuilder();
+                report.setXmlBuf (xmlBuf);
+            }
+	}
+	else if (tagname.equals ("hwpcreport")) {
+	    String mode = attributes.getValue ("mode");
+            if (genXmlType != 0) {
+                xmlDepth = 0;
+                if (genXmlType == 2) {
+                    // For combination "-c", start with depth 1.
+                    xmlDepth = 1;
+                }
+            }
+	    if ( (mode == null) || (mode.equals ("count")) ) {
+		// since the attribute "mode" has a default value of "count",
+		// so when it is absent, we create a counting report,
+		// that is why we put (mode == null) as one condition.
+		report = new PS_HwpcCountingReport();
+                if (genXmlType != 0) {
+                    xmlBuf = new StringBuilder();
+                    report.setXmlBuf (xmlBuf);
+                }
+	    } else if (mode.equals ("profile")) {
+		report = new PS_HwpcPCProfileReport();
+                if (genXmlType != 0) {
+                    xmlBuf = new StringBuilder();
+                    report.setXmlBuf (xmlBuf);
+                }
+	    } else {
+		throw new UnsupportedOperationException
+                    ("mode: \"" + mode + "\" not supported for hwpc report.  Only 'count' and 'profile' modes are supported now.");
+	    }
+            // here the mode should be valid,
+            // otherwise it should throw exeception and goes out of scope
+	    tmpReport = report;
+	}
+	else {
+	    if (report != null) {
+		report.startElement (uri, localName, qName, attributes);
+	    }
+	}
+
+	if (tmpReport != null) {
+	    // it's possible that such attribute is absent,
+            // currently deal with them in the setter methods
+	    tmpReport.setVersion (attributes.getValue("version"));
+ 	    tmpReport.setGenerator (attributes.getValue("generator"));
+	}
+
+        fillXmlBuf (tagname, attributes, xmlBuf);
+
+        if (genXmlType != 0) {
+            tmpValue = "";
+            xmlDepth++;
+        }
+
+    }
+
+    public void endElement(String uri, String localName, String qName) {
+        tmpValue = tmpValue.trim();
+	String tagname = qName.trim();
+        if (genXmlType != 0 && xmlBuf != null) {
+            xmlBuf.append (tmpValue);
+            if (tmpValue.equals ("")) {
+                // "hwpcevent" element in hpr is required to be EMPTY,
+                // while in hr is required to contain a string.
+                // so special handle it:
+                //     write a newline and the indentation only
+                //     if there's no character and it's not "hwpcevent" tag.
+                if (! tagname.equals("hwpcevent")) {
+                    xmlBuf.append ("\n" + spaces ((xmlDepth-1) * xmlIndent));
+                }
+            }
+        }
+
+	if (tagname.equals ("hwpcreport")) {
+            if (multiReport != null) {
+                multiReport.addReport ((PS_HwpcReport)report);
+            }
+            if (genXmlType != 0 && xmlBuf != null) {
+                xmlBuf.append ("</hwpcreport>\n");
+                xmlBuf = null;
+            }
+	}
+	else if (tagname.equals ("hwpcprofilereport")) {
+            if (multiProfileReport != null) {
+                multiProfileReport.addReport ((PS_HwpcProfileReport)report);
+            }
+            if (genXmlType != 0 && xmlBuf != null) {
+                xmlBuf.append ("</hwpcprofilereport>\n");
+                xmlBuf = null;
+            }
+	}
+	else if (report != null) {
+            report.endElement(uri, localName, qName);
+            if (genXmlType != 0 && xmlBuf != null) {
+                xmlBuf.append ("</" + tagname + ">");
+            }
+        }
+
+        if (genXmlType != 0) {
+            tmpValue = "";
+            xmlDepth--;
+        }
+    }
+
+    private String spaces (int num) {
+        if (num <= 0) {
+            return "";
+        }
+        StringBuilder sb = new StringBuilder();
+        for (int i = 0; i < num; i++) {
+            sb.append (" ");
+        }
+        return sb.toString();
+    }
+
+    public void characters(char[] ch, int start, int length) {
+	if (report != null) {
+	    report.characters (ch, start, length);
+            if (genXmlType != 0 && xmlBuf != null) {
+                String tmpString = new String (ch, start, length);
+                if (tmpString.length() != 0) {
+                    if (tmpValue.length() == 0) {
+                        tmpValue = tmpString;
+                    } else {
+                        tmpValue = tmpValue.concat (tmpString);
+                    }
+                }
+            }
+        }
+    }
+
+    // Error handler to report errors and warnings
+    private static class MyErrorHandler implements ErrorHandler {
+        private PrintStream out;
+
+        MyErrorHandler(PrintStream out) {
+            this.out = out;
+        }
+
+        /**
+         * Returns a string describing parse exception details
+         */
+        private String getParseExceptionInfo(SAXParseException spe) {
+            String info = "Public ID: " + spe.getPublicId() +
+		", System ID: " + spe.getSystemId() +
+                ", Line number: " + spe.getLineNumber() +
+                ", Column number: " + spe.getColumnNumber() +
+		", Message: " + spe.getMessage();
+            return info;
+        }
+
+        // The following methods are standard SAX ErrorHandler methods.
+
+        public void warning(SAXParseException spe) throws SAXException {
+            String message = "Warning: " + getParseExceptionInfo(spe);
+            throw new SAXException(message);
+        }
+        
+        public void error(SAXParseException spe) throws SAXException {
+            String message = "Error: " + getParseExceptionInfo(spe);
+            throw new SAXException(message);
+        }
+
+        public void fatalError(SAXParseException spe) throws SAXException {
+            String message = "Fatal Error: " + getParseExceptionInfo(spe);
+            throw new SAXException(message);
+        }
+    }
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_ResourceReport.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_ResourceReport.java
new file mode 100644
index 0000000..fd54ad9
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/PS_ResourceReport.java
@@ -0,0 +1,341 @@
+/* $Id: PS_ResourceReport.java,v 1.14 2012/01/13 20:49:17 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2008-2009, 2011-2012 The Board of Trustees of
+ * the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+import org.xml.sax.Attributes;
+import java.util.Date;
+import java.text.SimpleDateFormat;
+import java.text.ParseException;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.Locale;
+
+/**
+ * Class encapsulating information contained in a PerfSuite resource
+ * usage report XML document.
+ *
+ * @author Rick Kufrin
+ * @author Rui Liu
+ */
+public class PS_ResourceReport extends PS_Report {
+
+    private static final String PIDTAG                  = "pid";
+    private static final String STARTTIMETAG            = "starttime";
+    private static final String EXITCODETAG             = "exitcode";
+    private static final String EXIT_TYPE_ATT           = "type";
+    private static final String SAMPLESTAG              = "samples";
+    private static final String SAMPLES_FREQUENCY_ATT   = "frequency";
+    private static final String LOADAVGSTAG             = "loadavgs";
+    private static final String LOADAVGS_MIN_ATT        = "min";
+    private static final String LOADAVGS_MAX_ATT        = "max";
+    private static final String LOADAVGS_RESOLUTION_ATT = "resolution";
+    private static final String LOADAVGS_OUTOFRANGE_ATT = "outofrange";
+    private static final String LOADAVGTAG              = "loadavg";
+    private static final String LOADAVG_LOAD_ATT        = "load";
+    private static final String MAXLOADSTAG             = "maxloads";
+    private static final String MAXLOADTAG              = "maxload";
+    private static final String MAXLOAD_INTERVAL_ATT    = "interval";
+    private static final String MAXLOAD_UNIT_ATT        = "unit";
+    //private static final String MEMTAG                  = "memoryuse";
+    // nothing to parse
+    private static final String MAXRSSTAG               = "maxrss";
+    private static final String MAXVMTAG                = "maxvm";
+    private static final String USERTIMETAG             = "usertime";
+    private static final String SYSTEMTIMETAG           = "systemtime";
+    private static final String CPUTIMETAG              = "cputime";
+    //private static final String FAULTSTAG               = "faults";
+    // nothing to parse
+    private static final String MAJORTAG                = "major";
+    private static final String MINORTAG                = "minor";
+    private static final String SWAPSTAG                = "swaps";
+
+    private static final String DATEFORMAT = "EEE MMM dd HH:mm:ss yyyy";
+
+    private String tmpValue = "";
+
+    private long pid;
+    private Date startTime;
+    private int exitCode;
+    private String exitType;
+
+    private int samplesFrequency;
+    private long samples;
+    private float loadavgsMin;
+    private float loadavgsMax;
+    private float loadavgsResolution;
+    private long loadavgsOutofrange;
+    private Map<Float, Long> loadavgMap;
+    private float tmpLoadavg;
+    private Map<Integer, Float> maxloadMap;
+    private int tmpMaxload;
+    // units of maxload interval (Integer) is seconds
+    private float maxrss;
+    private float maxvm;
+    private CPUTime cputime;
+    private float userTime;
+    private float systemTime;
+    private long majorFaults;
+    private long minorFaults;
+    private long swaps;
+
+    PS_ResourceReport () {
+    }
+
+    void startElement(String uri, String localName, String qName,
+                      Attributes atts) {
+	// parse the tags specific to this class
+	if (qName.equals (EXITCODETAG)) {
+	    exitType = atts.getValue (EXIT_TYPE_ATT);
+	} else if (qName.equals (SAMPLESTAG)) {
+	    samplesFrequency =
+                Integer.parseInt (atts.getValue (SAMPLES_FREQUENCY_ATT));
+	} else if (qName.equals (LOADAVGSTAG)) {
+	    loadavgsMin = Float.parseFloat (atts.getValue (LOADAVGS_MIN_ATT));
+	    loadavgsMax = Float.parseFloat (atts.getValue (LOADAVGS_MAX_ATT));
+	    loadavgsResolution =
+                Float.parseFloat (atts.getValue (LOADAVGS_RESOLUTION_ATT));
+	    loadavgsOutofrange =
+                Long.parseLong (atts.getValue (LOADAVGS_OUTOFRANGE_ATT));
+	    loadavgMap = new TreeMap<Float, Long>();
+	} else if (qName.equals (LOADAVGTAG)) {
+	    tmpLoadavg = Float.parseFloat (atts.getValue (LOADAVG_LOAD_ATT));
+	} else if (qName.equals (MAXLOADSTAG)) {
+	    maxloadMap = new TreeMap<Integer, Float>();
+	} else if (qName.equals (MAXLOADTAG)) {
+	    tmpMaxload =
+                Integer.parseInt (atts.getValue (MAXLOAD_INTERVAL_ATT));
+	    if (atts.getValue (MAXLOAD_UNIT_ATT).equals ("minutes")) {
+		tmpMaxload *= 60;
+	    }
+	}
+
+	tmpValue = "";
+    }
+
+    void characters(char[] ch, int start, int length) {
+	String tmpString = new String (ch, start, length);
+	if (tmpString.length() != 0) {
+	    if (tmpValue.length() == 0) {
+		tmpValue = tmpString;
+	    } else {
+		tmpValue = tmpValue.concat (tmpString);
+	    }
+	}
+    }
+
+    void endElement(String uri, String localName, String qName) {
+
+        tmpValue = tmpValue.trim();
+	if (qName.equals (PIDTAG)) {
+	    pid = Long.parseLong (tmpValue);
+	} else if (qName.equals (EXITCODETAG)) {
+	    exitCode = Integer.parseInt(tmpValue);
+	} else if (qName.equals (STARTTIMETAG)) {
+	    // SimpleDateFormat.parse() is locale-sensitive,
+	    // while currently (as of Jan 2, 2009) the date times in XML reports
+	    // generated by psrun and libpshwpc are of the en_US locale only.
+	    // The approach we used is: save user's default locale,
+	    // use en_US to parse the date, then restore user's default locale.
+	    Locale savedDefaultLocale = Locale.getDefault();
+	    if (! savedDefaultLocale.equals (Locale.US)) {
+		Locale.setDefault (Locale.US);
+	    }
+	    SimpleDateFormat df = new SimpleDateFormat(DATEFORMAT);
+            try {
+                startTime = df.parse(tmpValue);
+            } catch (ParseException e) {
+                throw new RuntimeException (e);
+            }
+	    if (! savedDefaultLocale.equals (Locale.US)) {
+		Locale.setDefault (savedDefaultLocale);
+	    }
+	} else if (qName.equals (SAMPLESTAG)) {
+	    samples = Long.parseLong (tmpValue);
+	} else if (qName.equals (LOADAVGTAG)) {
+	    loadavgMap.put (tmpLoadavg, Long.parseLong (tmpValue));
+	} else if (qName.equals (MAXLOADTAG)) {
+	    maxloadMap.put (tmpMaxload, Float.parseFloat (tmpValue));
+	} else if (qName.equals (MAXRSSTAG)) {
+	    maxrss = Float.parseFloat (tmpValue);
+	} else if (qName.equals (MAXVMTAG)) {
+	    maxvm = Float.parseFloat (tmpValue);
+	} else if (qName.equals (USERTIMETAG)) {
+	    userTime = Float.parseFloat (tmpValue);
+	} else if (qName.equals (SYSTEMTIMETAG)) {
+	    systemTime = Float.parseFloat (tmpValue);
+	} else if (qName.equals (CPUTIMETAG)) {
+	    cputime = new CPUTime (userTime, systemTime);
+	} else if (qName.equals (MAJORTAG)) {
+	    majorFaults = Long.parseLong (tmpValue);
+	} else if (qName.equals (MINORTAG)) {
+	    minorFaults = Long.parseLong (tmpValue);
+	} else if (qName.equals (SWAPSTAG)) {
+	    swaps = Long.parseLong (tmpValue);
+	}
+	
+	tmpValue = "";
+    }
+ 
+    /**
+     * Returns a string representation of this resource report.
+     */
+    public String toString() {
+        StringBuilder res = new StringBuilder();
+	res.append (super.toString());
+	res.append ("  Pid:        " + pid + "\n");
+	res.append ("  Start Time: " + startTime + "\n");
+	res.append ("  Exit Code:  " + exitCode + "\n");
+	res.append ("  Exit Type:  " + exitType + "\n");
+	res.append ("  Samples Frequency:  " + samplesFrequency
+                    + " (seconds)\n");
+	res.append ("  Samples:  " + samples + "\n");
+	res.append ("  Load Average Min:  " + loadavgsMin + "\n");
+	res.append ("  Load Average Max:  " + loadavgsMax + "\n");
+	res.append ("  Load Average Resolution:  " + loadavgsResolution + "\n");
+	res.append ("  Number of Measurements " +
+                    "where Load Average is Out of Range (>= 100):  " +
+                    loadavgsOutofrange + "\n");
+	for (Map.Entry<Float,Long> entry : loadavgMap.entrySet()) {
+	    res.append ("  Load: " + entry.getKey() +
+                        ", Number of Occurrances: " + entry.getValue() + "\n");
+	}
+	for (Map.Entry<Integer,Float> entry : maxloadMap.entrySet()) {
+	    res.append ("  Max Load Interval: " + entry.getKey() +
+                        " (seconds), Max Load: " + entry.getValue() + "\n");
+	}
+	res.append ("  Max RSS:  " + maxrss + " (MB)\n");
+	res.append ("  Max VM:   " + maxvm + " (MB)\n");
+	res.append ("  User Time:   " + userTime + " (seconds)\n");
+	res.append ("  System Time:   " + systemTime + " (seconds)\n");
+	res.append ("  Major Faults:   " + majorFaults + "\n");
+	res.append ("  Minor Faults:   " + minorFaults + "\n");
+	res.append ("  Swaps:   " + swaps + "\n");
+
+        return res.toString();
+    }
+
+
+    /**
+     * Returns the process ID (pid) of the program.
+     */
+    public long getPid() { return pid;}
+
+    /**
+     * Returns the start time of the program.
+     */
+    public Date getStartTime() { return startTime;}
+
+    /**
+     * Returns the exit code of the program.
+     */
+    public int getExitCode() { return exitCode;}
+
+    /**
+     * Returns the exit type of the program, one of &quot;exit&quot;
+     * or &quot;signal&quot;.
+     */
+    public String getExitType() { return exitType;}
+
+    /**
+     * Returns the sampling frequency, in seconds.
+     */
+    public int getSamplesFrequency() { return samplesFrequency;}
+
+    /**
+     * Returns the total number of samples.
+     */
+    public long getSamples() { return samples;}
+
+    /**
+     * Returns the minimum value of load average.
+     */
+    public float getLoadavgsMin() { return loadavgsMin;}
+
+    /**
+     * Returns the maximum value of load average.
+     */
+    public float getLoadavgsMax() { return loadavgsMax;}
+
+    /**
+     * Returns the resolution of the measured load average values.
+     */
+    public float getLoadavgsResolution() { return loadavgsResolution;}
+
+    /**
+     * Returns the number of measurements when load average is out of range
+     * (currently means greater than or equal to 100).
+     */
+    public long getLoadavgsOutofrange() { return loadavgsOutofrange;}
+
+    /**
+     * Returns a map containing pairs of load average -> the number of 
+     * samples having this load average.
+     */
+    public Map<Float,Long> getLoadavgMap() { return loadavgMap;}
+
+    /**
+     * Returns a map containing pairs of time interval (in seconds)
+     *  -> the maximum load in the time interval.
+     */
+    public Map<Integer,Float> getMaxloadMap() { return maxloadMap;}
+
+    /**
+     * Returns the maximum size of resident memory in mega bytes (MB)
+     * that this program used.
+     */
+    public float getMaxrss() { return maxrss;}
+
+    /**
+     * Returns the maximum size of virtual memory in mega bytes (MB)
+     * that this program used.
+     */
+    public float getMaxvm() { return maxvm;}
+
+    /**
+     * Returns a <code>CPUTime</code> object, which contains the user time
+     * (in seconds) and system time (in seconds) that the program used.
+     */
+    public CPUTime getCputime() { return cputime;}
+
+    /**
+     * Returns the user time in seconds that the program used.
+     */
+    public float getUserTime() { return userTime;}
+
+    /**
+     * Returns the system time in seconds that the program used.
+     */
+    public float getSystemTime() { return systemTime;}
+
+    /**
+     * Returns the number of major faults that occurred
+     * in executing the program.
+     */
+    public long getMajorFaults() { return majorFaults;}
+
+    /**
+     * Returns the number of minor faults that occurred
+     * in executing the program.
+     */
+    public long getMinorFaults() { return minorFaults;}
+
+    /**
+     * Returns the number of swaps that occurred in executing the program.
+     */
+    public long getSwaps() { return swaps;}
+
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/TLB.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/TLB.java
new file mode 100644
index 0000000..f842e2b
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/TLB.java
@@ -0,0 +1,173 @@
+/* $Id: TLB.java,v 1.35 2012/01/13 20:49:17 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2008-2012 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+import java.util.Set;
+import java.util.TreeSet;
+import org.xml.sax.Attributes;
+
+/**
+ * Class representing a translation lookaside buffer (TLB) within a CPU.
+ * <p>
+ * <code>TLB</code> objects are exposed through a collection contained in
+ * a <code>CPUInfo</code> object.
+ *
+ * @author Rick Kufrin
+ * @author Rui Liu
+ */
+public class TLB {
+    private String type;       // "instruction", "data", or "unified"
+    private int    level; 
+    private int    entries;
+    private int    associativity;
+    private String associativityType; // "set" or "full"
+
+    //private static final String TLBINFOTAG = "tlbinfo"; // nothing to parse
+    private static final String TLBTAG     = "tlb";
+    private static final String TYPEATT    = "type";
+    private static final String LEVELATT   = "level";
+    private static final String ENTRIESTAG = "entries";
+    private static final String ASSOCTAG   = "associativity";
+
+    // strings for types of TLB
+    private static final String ITLB       = "instruction";
+    private static final String DTLB       = "data";
+    private static final String UTLB       = "unified";
+
+    private String tmpValue = "";
+    static private final Set<String> keySet;
+
+    static {
+	keySet = new TreeSet<String>();
+	keySet.add (TLBTAG);
+	keySet.add (ENTRIESTAG);
+	keySet.add (ASSOCTAG);
+    }
+
+    static boolean containsKey (String str) {
+	return keySet.contains (str);
+    }
+
+    static TLB newInstance(String type) {
+	if (type == null) {
+	    return new TLB();
+	} else if (type.equalsIgnoreCase (ITLB)) {
+	    return new InstructionTLB();
+	} else if (type.equalsIgnoreCase (DTLB)) {
+	    return new DataTLB();
+	} else if (type.equalsIgnoreCase (UTLB)) {
+	    return new UnifiedTLB();
+	} else {
+	    return new TLB();
+	}
+    }
+
+    TLB () {
+    }
+
+    void startElement(String uri, String localName, String qName,
+                      Attributes atts) {
+	if (qName.equals (TLBTAG)) {
+	    type = atts.getValue (TYPEATT);
+	    level = Integer.parseInt (atts.getValue (LEVELATT));
+            if (level <= 0) {
+                String str = "Wrong TLB level value '" +
+                    atts.getValue (LEVELATT) + "' . Should be > 0.";;
+                throw new RuntimeException (str);
+            }
+	} else if (qName.equals (ASSOCTAG)) {
+	    associativityType = atts.getValue (TYPEATT);
+	}
+
+	tmpValue = "";
+    }
+
+    void characters(char[] ch, int start, int length) {
+	String tmpString = new String (ch, start, length);
+	if (tmpString.length() != 0) {
+	    if (tmpValue.length() == 0) {
+		tmpValue = tmpString;
+	    } else {
+		tmpValue = tmpValue.concat (tmpString);
+	    }
+	}
+    }
+
+    void endElement(String uri, String localName, String qName) {
+
+        tmpValue = tmpValue.trim();
+	if (qName.equals (ENTRIESTAG)) {
+	    entries = Integer.parseInt (tmpValue);
+            if (entries <= 0) {
+                String str = "Wrong TLB entries value '" +
+                    tmpValue + "' . Should be > 0.";;
+                throw new RuntimeException (str);
+            }
+	} else if (qName.equals (ASSOCTAG)) {
+	    // in PerfSuite hwpcreport DTD v0.1 format,
+	    // the associativity tag could contain empty value.
+	    if (! tmpValue.equals("")) {
+		associativity = Integer.parseInt (tmpValue);
+                if (associativity < 0) {
+                    String str = "Wrong TLB associativity value '" +
+                        tmpValue + "' . Should be >= 0.";;
+                    throw new RuntimeException (str);
+                }
+	    }
+	}
+	
+	tmpValue = "";
+    }
+
+    /**
+     * Returns a string representation of this TLB.
+     */
+    public String toString() {
+	StringBuilder res = new StringBuilder();
+	res.append ("entries: " + entries);
+	res.append (", associativity: " + associativity);
+	res.append (", associativity type: \"" + associativityType + "\"");
+	return res.toString();			  
+    }
+
+    /**
+     * Returns the type of this TLB, one of
+     * &quot;instruction&quot;, &quot;data&quot;, or &quot;unified&quot;.
+     */
+    public String getType() { return type; }
+
+    /**
+     * Returns the level within the TLB hierarchy at which this
+     * TLB resides.
+     */
+    public int getLevel() { return level; }
+
+    /**
+     * Returns the number of entries in this TLB.
+     */
+    public int getEntries() { return entries; }
+
+    /**
+     * Returns the degree of associativity of this TLB.
+     */
+    public int getAssociativity() { return associativity; }
+
+    /**
+     * Returns the type of associativity of this TLB,
+     * one of &quot;set&quot; or &quot;full&quot;.
+     */
+    public String getAssociativityType() { return associativityType; }
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/UnifiedCache.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/UnifiedCache.java
new file mode 100644
index 0000000..0cc90d3
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/UnifiedCache.java
@@ -0,0 +1,36 @@
+/* $Id: UnifiedCache.java,v 1.16 2009/01/23 04:29:53 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2008-2009 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+/**
+ * Class describing the characteristics of a unified data/instruction
+ * cache.
+ *
+ * @author Rick Kufrin
+ * @author Rui Liu
+ */
+public class UnifiedCache extends Cache {
+
+    public String toString() {
+        return "  [Unified: " + super.toString() +
+	    ", linesize: " + getLineSize() + " (B)]\n";
+    }
+
+    /**
+     * Returns the cache line size in bytes.
+     */
+    public int getLineSize() { return super.getLineSize(); }
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/UnifiedTLB.java b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/UnifiedTLB.java
new file mode 100644
index 0000000..72040cf
--- /dev/null
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback.perfsuite/src/org/eclipse/ptp/internal/etfw/feedback/perfsuite/xml/UnifiedTLB.java
@@ -0,0 +1,29 @@
+/* $Id: UnifiedTLB.java,v 1.10 2009/01/23 04:29:53 ruiliu Exp $ */
+
+/*******************************************************************************
+ * Copyright (c) 2008-2009 The Board of Trustees of the University of Illinois.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ * 	   NCSA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ptp.internal.etfw.feedback.perfsuite.xml;
+
+/**
+ * Class describing the characteristics of a unified data/instruction
+ * translation lookaside buffer (UTLB).
+ *
+ * @author Rick Kufrin
+ * @author Rui Liu
+ */
+public class UnifiedTLB extends TLB {
+    public String toString() {
+        return "  [Unified: " + super.toString() + "]\n";
+    }
+
+}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.feedback/pom.xml b/tools/etfw/org.eclipse.ptp.etfw.feedback/pom.xml
index f3a85c2..7a30b7a 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.feedback/pom.xml
+++ b/tools/etfw/org.eclipse.ptp.etfw.feedback/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/etfw/org.eclipse.ptp.etfw.jaxb/pom.xml b/tools/etfw/org.eclipse.ptp.etfw.jaxb/pom.xml
index d00ac77..c6e5f83 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.jaxb/pom.xml
+++ b/tools/etfw/org.eclipse.ptp.etfw.jaxb/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/etfw/org.eclipse.ptp.etfw.jaxb/src/org/eclipse/ptp/internal/etfw/jaxb/JAXBInitializationUtil.java b/tools/etfw/org.eclipse.ptp.etfw.jaxb/src/org/eclipse/ptp/internal/etfw/jaxb/JAXBInitializationUtil.java
index 79d4a46..d36006b 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.jaxb/src/org/eclipse/ptp/internal/etfw/jaxb/JAXBInitializationUtil.java
+++ b/tools/etfw/org.eclipse.ptp.etfw.jaxb/src/org/eclipse/ptp/internal/etfw/jaxb/JAXBInitializationUtil.java
@@ -119,8 +119,10 @@
 
 	public static void initializeMap(EtfwToolProcessType etfwTool, IVariableMap instance) {
 		ControlDataType control = etfwTool.getControlData();
+		instance.clear();
 		Map<String, AttributeType> env = instance.getAttributes();
 		addAttributes(env, control);
+		instance.setInitialized(true);
 	}
 
 	public static void addAttributes(Map<String, AttributeType> env, ControlDataType control) {
diff --git a/tools/etfw/org.eclipse.ptp.etfw.jaxb/src/org/eclipse/ptp/internal/etfw/jaxb/util/ExternalToolProcessUtil.java b/tools/etfw/org.eclipse.ptp.etfw.jaxb/src/org/eclipse/ptp/internal/etfw/jaxb/util/ExternalToolProcessUtil.java
index 5f77dd4..e4d9014 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.jaxb/src/org/eclipse/ptp/internal/etfw/jaxb/util/ExternalToolProcessUtil.java
+++ b/tools/etfw/org.eclipse.ptp.etfw.jaxb/src/org/eclipse/ptp/internal/etfw/jaxb/util/ExternalToolProcessUtil.java
@@ -109,21 +109,21 @@
 	public static boolean canRun(boolean globalState, AnalysisToolType tool, ILaunchConfiguration configuration) {
 		boolean result = true;
 		if (result) result &= ExternalToolProcessUtil.evaluate(configuration, tool.getRequireTrue());
-		if (result) result &= ToolStateUtil.evaluate(globalState, configuration, tool.getToolState());
+		if (result) result &= ToolStateUtil.evaluate(tool.getToolState(), configuration, globalState);
 		return result;
 	}
 
 	public static boolean canRun(boolean globalState, ExecToolType tool, ILaunchConfiguration configuration) {
 		boolean result = true;
 		if (result) result &= ExternalToolProcessUtil.evaluate(configuration, tool.getRequireTrue());
-		if (result) result &= ToolStateUtil.evaluate(globalState, configuration, tool.getToolState());
+		if (result) result &= ToolStateUtil.evaluate(tool.getToolState(), configuration, globalState);
 		return result;
 	}
 
 	public static boolean canRun(boolean globalState, BuildToolType tool, ILaunchConfiguration configuration) {
 		boolean result = true;
 		if (result) result &= ExternalToolProcessUtil.evaluate(configuration, tool.getRequireTrue());
-		if (result) result &= ToolStateUtil.evaluate(globalState, configuration, tool.getToolState());
+		if (result) result &= ToolStateUtil.evaluate(tool.getToolState(), configuration, globalState);
 		return result;
 	}
 }
diff --git a/tools/etfw/org.eclipse.ptp.etfw.jaxb/src/org/eclipse/ptp/internal/etfw/jaxb/util/ToolPaneTypeUtil.java b/tools/etfw/org.eclipse.ptp.etfw.jaxb/src/org/eclipse/ptp/internal/etfw/jaxb/util/ToolPaneTypeUtil.java
index 370ffa7..8f4e6a2 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.jaxb/src/org/eclipse/ptp/internal/etfw/jaxb/util/ToolPaneTypeUtil.java
+++ b/tools/etfw/org.eclipse.ptp.etfw.jaxb/src/org/eclipse/ptp/internal/etfw/jaxb/util/ToolPaneTypeUtil.java
@@ -87,19 +87,13 @@
 					
 					String value = ""; //$NON-NLS-1$
 					if (key.endsWith("MAP")) {
-						value = configuration.getAttribute(key, JAXBCoreConstants.ZEROSTR);
-						if(value.length()>0&&value.startsWith("{")){
-							value=value.substring(1);
-						}
-						if(value.length()>0&&value.endsWith("}")){
-							value=value.substring(0,value.length()-1);
-						}
-						String[] valuePairs = value.split(JAXBCoreConstants.CM);
-						for(String valuePair : valuePairs) {
-							if(valuePair.contains(JAXBCoreConstants.EQ)){
-								String[] pair = valuePair.split(JAXBCoreConstants.EQ);
-								envMap.put(pair[0].trim(), pair[1].trim());
-							}
+						Map map = configuration.getAttribute(key, new HashMap<String, String>());
+						Iterator mapIterator = map.keySet().iterator();
+						while(mapIterator.hasNext()) {
+							Object envKey = mapIterator.next();
+							Object envValue = map.get(envKey);
+							envMap.put(envKey.toString().trim(), envValue.toString().trim());
+							
 						}
 					}
 					else{
diff --git a/tools/etfw/org.eclipse.ptp.etfw.jaxb/src/org/eclipse/ptp/internal/etfw/jaxb/util/ToolStateRuleUtil.java b/tools/etfw/org.eclipse.ptp.etfw.jaxb/src/org/eclipse/ptp/internal/etfw/jaxb/util/ToolStateRuleUtil.java
index 652f9d1..3b9c7ac 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.jaxb/src/org/eclipse/ptp/internal/etfw/jaxb/util/ToolStateRuleUtil.java
+++ b/tools/etfw/org.eclipse.ptp.etfw.jaxb/src/org/eclipse/ptp/internal/etfw/jaxb/util/ToolStateRuleUtil.java
@@ -11,7 +11,6 @@
 package org.eclipse.ptp.internal.etfw.jaxb.util;
 
 import java.util.List;
-import java.util.Map;
 
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.debug.core.ILaunchConfiguration;
@@ -19,73 +18,68 @@
 
 public class ToolStateRuleUtil {
 
-	public static boolean evaluate(ILaunchConfiguration configuration, ToolStateRuleType toolStateRuleType) {
+	public static boolean evaluate(ToolStateRuleType toolStateRuleType, ILaunchConfiguration configuration) {
 
 		if (toolStateRuleType.getNot() != null) {
-			boolean result = ToolStateRuleUtil.evaluate(configuration, toolStateRuleType.getNot());
+			boolean result = ToolStateRuleUtil.evaluate(toolStateRuleType.getNot(), configuration);
 			return result;
 		}
 
 		if (toolStateRuleType.getAnd() != null) {
-			boolean result = ToolStateRuleUtil.evaluate(configuration, toolStateRuleType.getAnd());
+			boolean result = ToolStateRuleUtil.evaluate(toolStateRuleType.getAnd(), configuration);
 			return result;
 		}
 
 		if (toolStateRuleType.getOr() != null) {
-			boolean result = ToolStateRuleUtil.evaluate(configuration, toolStateRuleType.getOr());
+			boolean result = ToolStateRuleUtil.evaluate(toolStateRuleType.getOr(), configuration);
 			return result;
 		}
 
 		if (toolStateRuleType.getAttribute() != null) {
-			boolean result = ToolStateRuleUtil.evaluate(configuration, toolStateRuleType.getAttribute(), toolStateRuleType.getValue());
+			boolean result = ToolStateRuleUtil.evaluate(toolStateRuleType.getAttribute(), configuration, toolStateRuleType.getValue());
 			return result;
 		}
 
 		return true;
 	}
 
-	public static boolean evaluate(ILaunchConfiguration configuration, ToolStateRuleType.Not toolStateRuleTypeNot) {
-		boolean result = !ToolStateRuleUtil.evaluate(configuration, toolStateRuleTypeNot.getRule());
+	public static boolean evaluate(ToolStateRuleType.Not toolStateRuleTypeNot, ILaunchConfiguration configuration) {
+		boolean result = !ToolStateRuleUtil.evaluate(toolStateRuleTypeNot.getRule(), configuration);
 		return result;
 	}
 
-	public static boolean evaluate(ILaunchConfiguration configuration, ToolStateRuleType.And toolStateRuleTypeAnd) {
+	public static boolean evaluate(ToolStateRuleType.And toolStateRuleTypeAnd, ILaunchConfiguration configuration) {
 		List<ToolStateRuleType> list = toolStateRuleTypeAnd.getRule();
 		for (ToolStateRuleType rule : list) {
-			if (!ToolStateRuleUtil.evaluate(configuration, rule)) {
+			if (!ToolStateRuleUtil.evaluate(rule, configuration)) {
 				return false;
 			}
 		}
 		return true;
 	}
 
-	public static boolean evaluate(ILaunchConfiguration configuration, ToolStateRuleType.Or toolStateRuleTypeOr) {
+	public static boolean evaluate(ToolStateRuleType.Or toolStateRuleTypeOr, ILaunchConfiguration configuration) {
 		List<ToolStateRuleType> list = toolStateRuleTypeOr.getRule();
 		for (ToolStateRuleType rule : list) {
-			if (ToolStateRuleUtil.evaluate(configuration, rule)) {
+			if (ToolStateRuleUtil.evaluate(rule, configuration)) {
 				return true;
 			}
 		}
 		return false;
 	}
 	
-	public static boolean evaluate(ILaunchConfiguration configuration, String ruleAttribute, String ruleValue) {
+	public static boolean evaluate(String attribute, ILaunchConfiguration configuration,  String value) {
 		/* Check if there is a value in the rule */
-		if (ruleValue != null) {
+		if (value != null) {
 			/*
 			 * There is a value in the rule, so check if there is a value in the launch configuration for this attribute and if
 			 * the values are or are not equal
 			 */
 			try {
-				Map attrs = configuration.getAttributes();
-				for (Object key : attrs.keySet()) {
-					if (key instanceof String && ((String)key).endsWith("x")) {
-					}
-				}
-				String configurationValue = configuration.getAttribute(ruleAttribute, (String) null);
+				String configurationValue = configuration.getAttribute(attribute, (String) null);
 				if (configurationValue != null) {
 					/* Check if the value does or does not match with the value in the launch configuration */
-					boolean result = ruleValue.equals(configurationValue);
+					boolean result = value.equals(configurationValue);
 					return result;
 				}
 			} catch (CoreException e) {
@@ -97,8 +91,8 @@
 			 * is, if the attribute is or is not defined
 			 */
 			try {
-				String value = configuration.getAttribute(ruleAttribute, (String) null);
-				if (value != null) {
+				String configurationValue = configuration.getAttribute(attribute, (String) null);
+				if (configurationValue != null) {
 					/* Value is defined in the launch configuration, that is, the attribute is defined */
 					return true;
 				}
diff --git a/tools/etfw/org.eclipse.ptp.etfw.jaxb/src/org/eclipse/ptp/internal/etfw/jaxb/util/ToolStateUtil.java b/tools/etfw/org.eclipse.ptp.etfw.jaxb/src/org/eclipse/ptp/internal/etfw/jaxb/util/ToolStateUtil.java
index e550207..12d834b 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.jaxb/src/org/eclipse/ptp/internal/etfw/jaxb/util/ToolStateUtil.java
+++ b/tools/etfw/org.eclipse.ptp.etfw.jaxb/src/org/eclipse/ptp/internal/etfw/jaxb/util/ToolStateUtil.java
@@ -15,7 +15,7 @@
 
 public class ToolStateUtil {
 	
-	public static boolean evaluate(boolean globalState, ILaunchConfiguration configuration, ToolStateType toolStateType) {
+	public static boolean evaluate(ToolStateType toolStateType, ILaunchConfiguration configuration, boolean globalState) {
 		
 		
 		if (configuration == null || toolStateType == null) {
@@ -23,12 +23,12 @@
 		}
 		
 		if (toolStateType.getExecuteIf() != null) {
-			boolean result = ToolStateRuleUtil.evaluate(configuration, toolStateType.getExecuteIf());
+			boolean result = ToolStateRuleUtil.evaluate(toolStateType.getExecuteIf(), configuration);
 			return result;
 		}
 		
 		if (toolStateType.getDoNotExecuteIf() != null) {
-			boolean result = !ToolStateRuleUtil.evaluate(configuration, toolStateType.getDoNotExecuteIf());
+			boolean result = !ToolStateRuleUtil.evaluate(toolStateType.getDoNotExecuteIf(), configuration);
 			return result;
 		}
 		
diff --git a/tools/etfw/org.eclipse.ptp.etfw.launch/META-INF/MANIFEST.MF b/tools/etfw/org.eclipse.ptp.etfw.launch/META-INF/MANIFEST.MF
index 43dcfb4..e0cb8e1 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.launch/META-INF/MANIFEST.MF
+++ b/tools/etfw/org.eclipse.ptp.etfw.launch/META-INF/MANIFEST.MF
@@ -10,7 +10,7 @@
  org.eclipse.core.runtime,
  org.eclipse.ptp.rm.jaxb.core,
  org.eclipse.ptp.rm.jaxb.control.core,
- org.eclipse.ptp.remote.core,
+ org.eclipse.remote.core,
  org.eclipse.ptp.core,
  org.eclipse.debug.ui,
  org.eclipse.ptp.launch,
diff --git a/tools/etfw/org.eclipse.ptp.etfw.launch/pom.xml b/tools/etfw/org.eclipse.ptp.etfw.launch/pom.xml
index c770998..346d2f3 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.launch/pom.xml
+++ b/tools/etfw/org.eclipse.ptp.etfw.launch/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/etfw/org.eclipse.ptp.etfw.launch/src/org/eclipse/ptp/internal/etfw/launch/ETFWParentLaunchConfigurationTab.java b/tools/etfw/org.eclipse.ptp.etfw.launch/src/org/eclipse/ptp/internal/etfw/launch/ETFWParentLaunchConfigurationTab.java
index 2d473d6..306b291 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.launch/src/org/eclipse/ptp/internal/etfw/launch/ETFWParentLaunchConfigurationTab.java
+++ b/tools/etfw/org.eclipse.ptp.etfw.launch/src/org/eclipse/ptp/internal/etfw/launch/ETFWParentLaunchConfigurationTab.java
@@ -9,7 +9,6 @@
  *******************************************************************************/
 package org.eclipse.ptp.internal.etfw.launch;
 
-import java.util.Iterator;
 import java.util.List;
 
 import org.eclipse.core.runtime.CoreException;
@@ -17,22 +16,13 @@
 import org.eclipse.debug.core.ILaunchConfiguration;
 import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
 import org.eclipse.debug.ui.ILaunchConfigurationDialog;
-import org.eclipse.ptp.internal.etfw.launch.ui.util.ETFWToolTabBuilder;
-import org.eclipse.ptp.internal.rm.jaxb.control.ui.launch.IJAXBLaunchConfigurationTab;
+import org.eclipse.ptp.internal.etfw.jaxb.data.ToolPaneType;
 import org.eclipse.ptp.launch.ui.extensions.JAXBControllerLaunchConfigurationTab;
+import org.eclipse.ptp.launch.ui.extensions.JAXBDynamicLaunchConfigurationTab;
 import org.eclipse.ptp.launch.ui.extensions.RMLaunchValidation;
 import org.eclipse.ptp.rm.jaxb.control.core.ILaunchController;
-import org.eclipse.ptp.rm.jaxb.control.ui.IUpdateModel;
 import org.eclipse.ptp.rm.jaxb.core.IVariableMap;
-import org.eclipse.ptp.rm.jaxb.core.data.AttributeType;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
 
 /**
  * Extends JAXBControllerLaunchConfigurationTab with specific changes for ETFw. The LC Map needs to be initialized from the
@@ -43,59 +33,34 @@
  */
 public class ETFWParentLaunchConfigurationTab extends JAXBControllerLaunchConfigurationTab {
 	private final IVariableMap variableMap;
-	private List<IJAXBLaunchConfigurationTab> tabControllers;
 
 	public ETFWParentLaunchConfigurationTab(ILaunchController control, ILaunchConfigurationDialog dialog, IProgressMonitor monitor,
-			IVariableMap variableMap) throws Throwable {
+			List<ToolPaneType> toolPanes, IVariableMap variableMap)
+			throws Throwable {
 		super(control, dialog, monitor);
+
 		this.variableMap = variableMap;
+		getControllers().clear();
+		for (ToolPaneType toolTab : toolPanes) {
+			JAXBDynamicLaunchConfigurationTab dynamicTab = new JAXBDynamicLaunchConfigurationTab(this.getJobControl(),
+					toolTab.getOptionPane(), this);
+			dynamicTab.getController().setShowViewConfig(false);
+			dynamicTab.setCheckCycles(false);
+			addDynamicTab(dynamicTab);
+		}
 	}
 
 	@Override
 	public void createControl(Composite parent, String id) throws CoreException {
-		control = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		control.setLayout(layout);
-
-		tabFolder = new TabFolder(control, SWT.NONE);
-		tabFolder.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-		ETFWToolTabBuilder.initialize();
-		for (IJAXBLaunchConfigurationTab tabControl : tabControllers) {
-			ETFWToolTabBuilder builder = new ETFWToolTabBuilder(tabControl, this.variableMap);
-
-			TabItem tabItem = new TabItem(tabFolder, SWT.NONE);
-			Control control = null;
-			final ScrolledComposite scroller = new ScrolledComposite(tabFolder, SWT.V_SCROLL | SWT.H_SCROLL);
-			try {
-				control = builder.build(scroller);
-				((Composite) control).layout();
-
-				tabItem.setText(tabControl.getController().getTitle());
-				String tooltip = tabControl.getController().getTooltip();
-				if (tooltip != null) {
-					tabItem.setToolTipText(tooltip);
-					scroller.setToolTipText(tooltip);
-				}
-
-				scroller.setContent(control);
-				scroller.setExpandHorizontal(true);
-				scroller.setExpandVertical(true);
-				scroller.setMinSize(control.computeSize(SWT.DEFAULT, SWT.DEFAULT));
-
-				tabItem.setControl(scroller);
-			} catch (Throwable t) {
-				t.printStackTrace();
-			}
-
-		}
-		this.controlId = id;
-		control.layout(true, true);
+		super.createControl(parent, id);
 	}
 
 	@Override
 	public RMLaunchValidation initializeFrom(ILaunchConfiguration configuration) {
+		// This prevents the parent from clearing the LC map and initializing it with the fControl RM map
+		this.voidRMConfig = true;
 		try {
-			// This lets us differentiate keys from the old ETFW so they can work from one Profiling Tab
+			// Initialize the map with ETFw's RM map
 			getVariableMap().initialize(variableMap, getJobControl().getControlId());
 			getUpdateHandler().clear();
 			getVariableMap().updateFromConfiguration(configuration);
@@ -103,89 +68,25 @@
 			t.printStackTrace();
 		}
 
-		return null;
-	}
-
-	public void addDynamicContent(List<IJAXBLaunchConfigurationTab> tabs) {
-		this.tabControllers = tabs;
+		RMLaunchValidation validation = super.initializeFrom(configuration);
+		return validation;
 	}
 
 	@Override
 	public RMLaunchValidation performApply(ILaunchConfigurationWorkingCopy configuration) {
 		RMLaunchValidation validation = super.performApply(configuration);
-
-		// TODO the above performApply should update the attribute map, but it doesn't right now so it is handled below
-		Iterator<String> iterator = getVariableMap().getAttributes().keySet().iterator();
-		while (iterator.hasNext()) {
-			String attribute = iterator.next();
-			String name = attribute;
-			if (name.startsWith(controlId)) {
-				name = name.substring(controlId.length() + 1, attribute.length());
-
-				// Check to see if the variable is part of ETFw
-				AttributeType temp = variableMap.getAttributes().get(name);
-				if (temp != null) {
-					if (isWidgetEnabled(temp.getName()) && temp.isVisible()) {
-						String attType = temp.getType();
-
-						// If boolean is translated to a string, insert the string into the launch configuration
-						String translateBoolean = variableMap.getAttributes().get(name).getTranslateBooleanAs();
-						Object value = getVariableMap().getValue(name);
-						if (attType.equals("boolean")) { //$NON-NLS-1$
-							if (translateBoolean != null) {
-								configuration.setAttribute(attribute, value.toString());
-							} else {
-								boolean val = new Boolean(value.toString());
-								configuration.setAttribute(attribute, val);
-							}
-						} else if (attType.equals("string")) { //$NON-NLS-1$
-							configuration.setAttribute(attribute, value.toString());
-						} else if (attType.equals("integer")) { //$NON-NLS-1$
-							if (value.toString().length() > 0) {
-								int val = new Integer(value.toString());
-								configuration.setAttribute(attribute, val);
-							} else {
-								configuration.setAttribute(attribute, value.toString());
-							}
-						} else {
-							configuration.setAttribute(attribute, value.toString());
-						}
-					}
-				}
-			}
-		}
-
 		return validation;
 	}
 
-	/**
-	 * Determines if the UI widget is enabled and should be included in the launch configuration. It prevents attributes that are
-	 * not enabled from getting included in the launch configuration
-	 * 
-	 * @param attributeName
-	 *            Name of the attribute associated with the widget
-	 * @return enabled state of widget
-	 */
-	public boolean isWidgetEnabled(String attributeName) {
-		for (IJAXBLaunchConfigurationTab tabControl : tabControllers) {
-			for (IUpdateModel m : tabControl.getLocalWidgets().values()) {
-				if (m.getName() != null) {
-					if (m.getName().equals(attributeName)) {
-						return ((Control) m.getControl()).isEnabled();
-					}
-				} else {
-					// Do nothing, the model has no attribute associated with it
-				}
-			}
-		}
-		// Handles the case where attributes are not associated with UI models
-		return true;
-	}
-
 	@Override
 	public void relink() {
 		// Some of the jaxb classes need to be re-worked for this to be implemented because their are target configuration specifics
 		// in this call hierarchy
+		super.relink();
+	}
+
+	public IVariableMap getRMVariableMap() {
+		return this.variableMap;
 	}
 
 }
diff --git a/tools/etfw/org.eclipse.ptp.etfw.launch/src/org/eclipse/ptp/internal/etfw/launch/PerformanceAnalysisTab.java b/tools/etfw/org.eclipse.ptp.etfw.launch/src/org/eclipse/ptp/internal/etfw/launch/PerformanceAnalysisTab.java
index b7fca8c..efc684e 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.launch/src/org/eclipse/ptp/internal/etfw/launch/PerformanceAnalysisTab.java
+++ b/tools/etfw/org.eclipse.ptp.etfw.launch/src/org/eclipse/ptp/internal/etfw/launch/PerformanceAnalysisTab.java
@@ -10,7 +10,6 @@
 package org.eclipse.ptp.internal.etfw.launch;
 
 import java.util.ArrayList;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 
@@ -20,7 +19,6 @@
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.debug.core.ILaunchConfiguration;
 import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
 import org.eclipse.debug.ui.ILaunchConfigurationDialog;
 import org.eclipse.debug.ui.ILaunchConfigurationTab;
 import org.eclipse.ptp.core.util.LaunchUtils;
@@ -35,24 +33,25 @@
 import org.eclipse.ptp.internal.etfw.jaxb.util.JAXBExtensionUtils;
 import org.eclipse.ptp.internal.etfw.launch.messages.Messages;
 import org.eclipse.ptp.internal.etfw.ui.ExternalToolSelectionTab;
-import org.eclipse.ptp.internal.rm.jaxb.control.ui.launch.IJAXBLaunchConfigurationTab;
+import org.eclipse.ptp.internal.rm.jaxb.control.core.variables.RMVariableMap;
+import org.eclipse.ptp.internal.rm.jaxb.core.JAXBCoreConstants;
 import org.eclipse.ptp.launch.ui.extensions.IRMLaunchConfigurationContentsChangedListener;
 import org.eclipse.ptp.launch.ui.extensions.IRMLaunchConfigurationDynamicTab;
-import org.eclipse.ptp.launch.ui.extensions.JAXBDynamicLaunchConfigurationTab;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
+import org.eclipse.ptp.launch.ui.tabs.LaunchConfigurationTab;
 import org.eclipse.ptp.rm.jaxb.control.core.ILaunchController;
 import org.eclipse.ptp.rm.jaxb.control.core.LaunchControllerManager;
-import org.eclipse.ptp.rm.jaxb.control.ui.IUpdateModel;
 import org.eclipse.ptp.rm.jaxb.core.IVariableMap;
 import org.eclipse.ptp.rm.jaxb.core.data.AttributeType;
 import org.eclipse.ptp.rm.jaxb.core.data.CommandType;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnectionManager;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.RemoteServices;
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.graphics.Point;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
@@ -60,17 +59,16 @@
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
 
 /**
- * Notes: This class is a re-implementation of ParallelToolSelectionTab using JAXB to dynamically build the UI.
- * TODO Review this class to see if some of what is done could be replaced with the JAXB provided classes or done as an extension of
- * the JAXB parent classes instead of what has been done with Some of the functionality in this class belongs in
- * ETFWParentLaunchConfiguration
+ * This class is a re-implementation of ParallelToolSelectionTab using JAXB to dynamically build the UI for setting up performance
+ * analysis tools to run on the application
  * 
  * @author Chris Navarro
  * 
  */
-public class PerformanceAnalysisTab extends AbstractLaunchConfigurationTab implements IToolLaunchConfigurationConstants,
+public class PerformanceAnalysisTab extends LaunchConfigurationTab implements IToolLaunchConfigurationConstants,
 		IExecutableExtension {
 
 	private static final String TAB_ID = "org.eclipse.ptp.internal.etfw.launch.PerformanceAnalysisTab"; //$NON-NLS-1$
@@ -87,6 +85,7 @@
 	private final WidgetListener listener = new WidgetListener();
 	private List<ToolPaneType> toolTabs;
 
+	private ScrolledComposite scroller;
 	private Composite topComposite;
 	private Composite toolComposite;
 	private Composite bottomComposite;
@@ -95,8 +94,6 @@
 	private Button buildOnlyCheck;
 	private Button analyzeonlyCheck;
 
-	// This should be part of the launchTabParent, but there is RM specifics that must be removed
-	private final LinkedList<IJAXBLaunchConfigurationTab> tabControllers = new LinkedList<IJAXBLaunchConfigurationTab>();
 	private final ContentsChangedListener launchContentsChangedListener = new ContentsChangedListener();
 
 	// Sax Parser ETFW
@@ -129,7 +126,7 @@
 		topComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
 
 		toolComposite = new Composite(content, SWT.NONE);
-		toolComposite.setLayout(new FillLayout());
+		toolComposite.setLayout(new GridLayout());
 		toolComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
 
 		bottomComposite = new Composite(content, SWT.NONE);
@@ -166,20 +163,22 @@
 	}
 
 	private void buildJAXBParserUI() {
-		selectToolLbl = new Label(topComposite, SWT.NONE);
-		selectToolLbl.setText(Messages.PerformanceAnalysisTab_SelectTool);
+		if (PreferenceConstants.getWorkflow() == null) {
+			selectToolLbl = new Label(topComposite, SWT.NONE);
+			selectToolLbl.setText(Messages.PerformanceAnalysisTab_SelectTool);
 
-		toolCombo = new Combo(topComposite, SWT.READ_ONLY);
-		toolCombo.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-		String[] toolNames = JAXBExtensionUtils.getToolNames();
-		toolCombo.add(Messages.PerformanceAnalysisTab_PleaseSelectWorkflow);
+			toolCombo = new Combo(topComposite, SWT.READ_ONLY);
+			toolCombo.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
+			String[] toolNames = JAXBExtensionUtils.getToolNames();
+			toolCombo.add(Messages.PerformanceAnalysisTab_PleaseSelectWorkflow);
 
-		for (String name : toolNames) {
-			toolCombo.add(name);
+			for (String name : toolNames) {
+				toolCombo.add(name);
+			}
+
+			toolCombo.addSelectionListener(listener);
 		}
 
-		toolCombo.addSelectionListener(listener);
-
 		toolComposite.getParent().layout();
 		topComposite.layout();
 		toolComposite.layout();
@@ -224,81 +223,89 @@
 	}
 
 	private void rebuildTab(String toolName) {
+		clearOldWidgets();
+
 		if (toolName.equals(Messages.PerformanceAnalysisTab_PleaseSelectWorkflow)) {
-			clearOldWidgets();
 			return;
 		}
 
 		etfwTool = JAXBExtensionUtils.getTool(toolName);
-		vmap = controller.getEnvironment();
 
-		JAXBInitializationUtil.initializeMap(etfwTool, vmap);
+		if (controller != null) {
+			vmap = new RMVariableMap();
 
-		// Add in connection property attributes to ETFW variable map
-		final IRemoteServices services = RemoteServices.getRemoteServices(controller.getRemoteServicesId());
-		if (services != null) {
-			final IRemoteConnectionManager connMgr = services.getConnectionManager();
-			IRemoteConnection remoteConnection = connMgr.getConnection(controller.getConnectionName());
-			if (remoteConnection != null) {
-				setConnectionPropertyAttributes(remoteConnection);
+			JAXBInitializationUtil.initializeMap(etfwTool, vmap);
+
+			// Add in connection property attributes to ETFW variable map
+			final IRemoteServices services = RemoteServices.getRemoteServices(controller.getRemoteServicesId());
+			if (services != null) {
+				final IRemoteConnectionManager connMgr = services.getConnectionManager();
+				IRemoteConnection remoteConnection = connMgr.getConnection(controller.getConnectionName());
+				if (remoteConnection != null) {
+					setConnectionPropertyAttributes(remoteConnection);
+				}
 			}
-		}
 
-		try {
-			launchTabParent = new ETFWParentLaunchConfigurationTab(controller, getLaunchConfigurationDialog(),
-					new NullProgressMonitor(), vmap);
-		} catch (Throwable e1) {
-			e1.printStackTrace();
-		}
-		launchTabParent.addContentsChangedListener(launchContentsChangedListener);
+			for (Control control : toolComposite.getChildren()) {
+				control.dispose();
+			}
 
-		for (IJAXBLaunchConfigurationTab tabControl : tabControllers) {
-			tabControl.getLocalWidgets().clear();
-		}
-
-		tabControllers.clear();
-		for (Control control : toolComposite.getChildren()) {
-			control.dispose();
-		}
-
-		if (etfwTool.getControlData() != null) {
-			for (CommandType command : etfwTool.getControlData().getInitializeCommand()) {
-				if (command != null) {
-					try {
-						controller.runCommand(command, vmap);
-					} catch (CoreException e) {
-						e.printStackTrace();
+			if (etfwTool.getControlData() != null) {
+				for (CommandType command : etfwTool.getControlData().getInitializeCommand()) {
+					if (command != null) {
+						try {
+							controller.runCommand(command, vmap);
+						} catch (CoreException e) {
+							e.printStackTrace();
+						}
 					}
 				}
 			}
-		}
 
-		toolTabs = findTabControllers();
+			toolTabs = findTabControllers();
 
-		for (ToolPaneType toolTab : toolTabs) {
-			tabControllers.add(new JAXBDynamicLaunchConfigurationTab(controller, toolTab.getOptionPane(), launchTabParent));
-		}
-
-		launchTabParent.addDynamicContent(tabControllers);
-
-		try {
-			launchTabParent.createControl(toolComposite, controller.getControlId());
-		} catch (CoreException e) {
-			e.printStackTrace();
-		}
-
-		handleUpdate();
-	}
-
-	private void handleUpdate() {
-		launchTabParent.initializeFrom(this.launchConfiguration);
-
-		for (IJAXBLaunchConfigurationTab tabControl : tabControllers) {
-			for (IUpdateModel m : tabControl.getLocalWidgets().values()) {
-				m.initialize(this.launchConfiguration, vmap, launchTabParent.getVariableMap());
+			try {
+				launchTabParent = new ETFWParentLaunchConfigurationTab(controller, getLaunchConfigurationDialog(),
+						new NullProgressMonitor(), toolTabs, vmap);
+			} catch (Throwable e1) {
+				e1.printStackTrace();
 			}
+			launchTabParent.addContentsChangedListener(launchContentsChangedListener);
 
-			((JAXBDynamicLaunchConfigurationTab) tabControl).initializeFrom(this.launchConfiguration);
+			Composite comp = new Composite(toolComposite, SWT.NONE);
+
+			GridLayout layout = new GridLayout(1, true);
+			comp.setLayout(layout);
+			GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+			comp.setLayoutData(gd);
+
+			scroller = new ScrolledComposite(toolComposite, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
+			GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
+			scroller.setLayoutData(gridData);
+			scroller.setExpandHorizontal(true);
+			scroller.setExpandVertical(true);
+			scroller.setContent(null);
+			for (Control child : scroller.getChildren()) {
+				child.dispose();
+			}
+			try {
+				launchTabParent.createControl(scroller, controller.getControlId());
+				final Control dynControl = launchTabParent.getControl();
+				scroller.setContent(dynControl);
+				Point size = dynControl.computeSize(SWT.DEFAULT, SWT.DEFAULT);
+				scroller.setMinSize(size);
+				launchTabParent.initializeFrom(this.launchConfiguration);
+			} catch (CoreException e) {
+				e.printStackTrace();
+			}
+		} else {
+			Composite comp = new Composite(toolComposite, SWT.NONE);
+			GridLayout layout = new GridLayout();
+			comp.setLayout(layout);
+			Text message = new Text(comp, SWT.NONE);
+			message.setText(Messages.PerformanceAnalysisTab_Please_select_a_target_configuration_first);
+			message.setBackground(toolComposite.getBackground());
+			message.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
 		}
 	}
 
@@ -344,11 +351,21 @@
 		return subTabs;
 	}
 
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#setDefaults(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
+	 */
 	@Override
 	public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
 		// Do nothing
 	}
 
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#initializeFrom(org.eclipse.debug.core.ILaunchConfiguration)
+	 */
 	@Override
 	public void initializeFrom(ILaunchConfiguration configuration) {
 		launchConfiguration = configuration;
@@ -366,7 +383,7 @@
 					String parser = PreferenceConstants.getVersion();
 					if (parser.equals(IToolLaunchConfigurationConstants.USE_SAX_PARSER)) {
 						saxETFWTab.initializeFrom(configuration);
-					} else {
+					} else if (toolCombo != null) {
 						String toolName = configuration.getAttribute(IToolLaunchConfigurationConstants.SELECTED_TOOL,
 								IToolLaunchConfigurationConstants.EMPTY_STRING);
 						for (int index = 0; index < toolCombo.getItemCount(); index++) {
@@ -382,6 +399,8 @@
 							toolCombo.select(0);
 							clearOldWidgets();
 						}
+					} else {
+						rebuildTab(PreferenceConstants.getWorkflow());
 					}
 				}
 
@@ -391,6 +410,11 @@
 		}
 	}
 
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#performApply(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
+	 */
 	@Override
 	public void performApply(ILaunchConfigurationWorkingCopy configuration) {
 		if (noPTP) {
@@ -403,39 +427,41 @@
 			if (parser.equals(IToolLaunchConfigurationConstants.USE_SAX_PARSER)) {
 				saxETFWTab.performApply(configuration);
 			} else {
-				if (toolCombo.getSelectionIndex() > 0) {
-					String selectedtool = toolCombo.getItem(toolCombo.getSelectionIndex());
-					configuration.setAttribute(SELECTED_TOOL, selectedtool);
-
-					configuration.setAttribute(BUILDONLY, buildOnlyCheck.getSelection());
-					configuration.setAttribute(ANALYZEONLY, analyzeonlyCheck.getSelection());
-
+				if (toolCombo == null) {
+					configuration.setAttribute(SELECTED_TOOL, PreferenceConstants.getWorkflow());
+				} else if (toolCombo.getSelectionIndex() > 0) {
+					configuration.setAttribute(SELECTED_TOOL, toolCombo.getItem(toolCombo.getSelectionIndex()));
 					if (launchTabParent != null) {
-						launchTabParent.performApply(configuration);
+						try {
+							String controlid = launchTabParent.getJobControl().getControlId();
+							String attributeName = controlid + IToolLaunchConfigurationConstants.DOT
+									+ JAXBCoreConstants.CURRENT_CONTROLLER;
+							String oldController = configuration.getAttribute(attributeName, JAXBCoreConstants.ZEROSTR);
+							launchTabParent.performApply(configuration);
+
+							// performApply sets controller to the tab of the ETFw workflow, reset back to resources tab
+							configuration.setAttribute(attributeName, oldController);
+						} catch (CoreException e) {
+							e.printStackTrace();
+						}
 					}
 				}
+
+				configuration.setAttribute(BUILDONLY, buildOnlyCheck.getSelection());
+				configuration.setAttribute(ANALYZEONLY, analyzeonlyCheck.getSelection());
 			}
 		}
 	}
 
 	protected class WidgetListener extends SelectionAdapter {
-		private String prevToolName;
-		private String prevLaunchConfig;
-
 		@Override
 		public void widgetSelected(SelectionEvent e) {
-			if (getLaunchConfigurationDialog().getActiveTab().getName().equals(getName())) {
-				int selection = toolCombo.getSelectionIndex();
+			int selection = toolCombo.getSelectionIndex();
+			if(selection != -1) {
 				String toolName = toolCombo.getItem(selection);
-
-				if (!toolName.equals(prevToolName) || !launchConfiguration.getName().equals(prevLaunchConfig)) {
-					prevToolName = toolName;
-					prevLaunchConfig = launchConfiguration.getName();
-					rebuildTab(toolName);
-				}
+				rebuildTab(toolName);
+				updateLaunchConfigurationDialog();
 			}
-
-			updateLaunchConfigurationDialog();
 		}
 	}
 
@@ -445,27 +471,39 @@
 		}
 	}
 
-	/**
-	 * @see ILaunchConfigurationTab#getName()
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getName()
 	 */
 	@Override
 	public String getName() {
 		return Messages.PerformanceAnalysisTab_Tab_Name;
 	}
 
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.debug.ui.AbstractLaunchConfigurationTab#getId()
+	 */
 	@Override
 	public String getId() {
 		return TAB_ID;
 	}
 
-	/**
-	 * @see ILaunchConfigurationTab#setLaunchConfigurationDialog (ILaunchConfigurationDialog)
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.debug.ui.AbstractLaunchConfigurationTab#setLaunchConfigurationDialog(org.eclipse.debug.ui.ILaunchConfigurationDialog)
 	 */
 	@Override
 	public void setLaunchConfigurationDialog(ILaunchConfigurationDialog dialog) {
 		super.setLaunchConfigurationDialog(dialog);
 	}
 
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.debug.ui.AbstractLaunchConfigurationTab#isValid(org.eclipse.debug.core.ILaunchConfiguration)
+	 */
 	@Override
 	public boolean isValid(ILaunchConfiguration configuration) {
 		setErrorMessage(null);
diff --git a/tools/etfw/org.eclipse.ptp.etfw.launch/src/org/eclipse/ptp/internal/etfw/launch/messages/Messages.java b/tools/etfw/org.eclipse.ptp.etfw.launch/src/org/eclipse/ptp/internal/etfw/launch/messages/Messages.java
index 3d953e9..5ab87b9 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.launch/src/org/eclipse/ptp/internal/etfw/launch/messages/Messages.java
+++ b/tools/etfw/org.eclipse.ptp.etfw.launch/src/org/eclipse/ptp/internal/etfw/launch/messages/Messages.java
@@ -9,6 +9,7 @@
 	public static String PerformanceAnalysisTab_BuildInstrumentedExecutable;
 	public static String PerformanceAnalysisTab_NoWorkflowSelected;
 	public static String PerformanceAnalysisTab_NoWorkflowTypeSelected;
+	public static String PerformanceAnalysisTab_Please_select_a_target_configuration_first;
 	public static String PerformanceAnalysisTab_PleaseSelectWorkflow;
 	public static String PerformanceAnalysisTab_PleaseSelectWorkflowType;
 	public static String PerformanceAnalysisTab_SelectExistingPerfData;
diff --git a/tools/etfw/org.eclipse.ptp.etfw.launch/src/org/eclipse/ptp/internal/etfw/launch/messages/messages.properties b/tools/etfw/org.eclipse.ptp.etfw.launch/src/org/eclipse/ptp/internal/etfw/launch/messages/messages.properties
index d533db3..4d526a9 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.launch/src/org/eclipse/ptp/internal/etfw/launch/messages/messages.properties
+++ b/tools/etfw/org.eclipse.ptp.etfw.launch/src/org/eclipse/ptp/internal/etfw/launch/messages/messages.properties
@@ -3,6 +3,7 @@
 PerformanceAnalysisTab_BuildInstrumentedExecutable=Build the instrumented executable but do not launch it
 PerformanceAnalysisTab_NoWorkflowSelected=No workflow selected.
 PerformanceAnalysisTab_NoWorkflowTypeSelected=No workflow type selected.
+PerformanceAnalysisTab_Please_select_a_target_configuration_first=Please select a target configuration first
 PerformanceAnalysisTab_PleaseSelectWorkflow=Please select a workflow
 PerformanceAnalysisTab_PleaseSelectWorkflowType=Please select a workflow type
 PerformanceAnalysisTab_SelectExistingPerfData=Select existing performance data to analyze with the selected tool
diff --git a/tools/etfw/org.eclipse.ptp.etfw.launch/src/org/eclipse/ptp/internal/etfw/launch/variables/ETFWVariableMap.java b/tools/etfw/org.eclipse.ptp.etfw.launch/src/org/eclipse/ptp/internal/etfw/launch/variables/ETFWVariableMap.java
index 6f5c250..9937583 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.launch/src/org/eclipse/ptp/internal/etfw/launch/variables/ETFWVariableMap.java
+++ b/tools/etfw/org.eclipse.ptp.etfw.launch/src/org/eclipse/ptp/internal/etfw/launch/variables/ETFWVariableMap.java
@@ -24,9 +24,9 @@
 import org.eclipse.ptp.internal.rm.jaxb.control.core.JAXBControlConstants;
 import org.eclipse.ptp.internal.rm.jaxb.control.core.JAXBControlCorePlugin;
 import org.eclipse.ptp.internal.rm.jaxb.core.JAXBCoreConstants;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
 import org.eclipse.ptp.rm.jaxb.core.IVariableMap;
 import org.eclipse.ptp.rm.jaxb.core.data.AttributeType;
+import org.eclipse.remote.core.IRemoteConnection;
 
 /**
  * Based on RMVariableMap by Albert Rossi and Jeff Overbey, this contains all the properties
diff --git a/tools/etfw/org.eclipse.ptp.etfw.parallel/META-INF/MANIFEST.MF b/tools/etfw/org.eclipse.ptp.etfw.parallel/META-INF/MANIFEST.MF
index d2ae8d9..2a9dffd 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.parallel/META-INF/MANIFEST.MF
+++ b/tools/etfw/org.eclipse.ptp.etfw.parallel/META-INF/MANIFEST.MF
@@ -3,17 +3,23 @@
 Bundle-Name: %fragmentName
 Bundle-SymbolicName: org.eclipse.ptp.etfw.parallel;singleton:=true
 Bundle-Version: 2.0.0.qualifier
-Fragment-Host: org.eclipse.ptp.etfw;bundle-version="1.0.0"
 Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ptp.core,
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.core.filesystem,
+ org.eclipse.jface,
+ org.eclipse.debug.core,
+ org.eclipse.debug.ui,
+ org.eclipse.cdt.core,
+ org.eclipse.cdt.launch,
+ org.eclipse.cdt.managedbuilder.core,
+ org.eclipse.ptp.core,
  org.eclipse.ptp.launch,
  org.eclipse.ptp.debug.core,
- org.eclipse.ptp.remote.core,
- org.eclipse.ptp.remote.ui;bundle-version="5.0.0",
- org.eclipse.ptp.rm.jaxb.control.core;bundle-version="2.0.0",
- org.eclipse.ptp.launch
+ org.eclipse.ptp.rm.jaxb.control.core,
+ org.eclipse.ptp.etfw
 Bundle-Vendor: %pluginProvider
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Export-Package: org.eclipse.ptp.internal.etfw.parallel;x-internal:=true,
  org.eclipse.ptp.internal.etfw.parallel.internal;x-internal:=true,
  org.eclipse.ptp.internal.etfw.parallel.messages;x-internal:=true
+Bundle-ActivationPolicy: lazy
diff --git a/tools/etfw/org.eclipse.ptp.etfw.parallel/build.properties b/tools/etfw/org.eclipse.ptp.etfw.parallel/build.properties
index e3bbd49..e398e4e 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.parallel/build.properties
+++ b/tools/etfw/org.eclipse.ptp.etfw.parallel/build.properties
@@ -2,6 +2,6 @@
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
-               fragment.xml,\
+               plugin.xml,\
                about.html,\
                plugin.properties
diff --git a/tools/etfw/org.eclipse.ptp.etfw.parallel/fragment.xml b/tools/etfw/org.eclipse.ptp.etfw.parallel/plugin.xml
similarity index 98%
rename from tools/etfw/org.eclipse.ptp.etfw.parallel/fragment.xml
rename to tools/etfw/org.eclipse.ptp.etfw.parallel/plugin.xml
index 11ab2ea..05da900 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.parallel/fragment.xml
+++ b/tools/etfw/org.eclipse.ptp.etfw.parallel/plugin.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<fragment>
+<?eclipse version="3.4"?>
+<plugin>
    <extension
          point="org.eclipse.debug.ui.launchConfigurationTabGroups">
       <launchConfigurationTabGroup
@@ -94,4 +94,4 @@
          </associatedDelegate>
       </tab>
    </extension>	
-</fragment>
+</plugin>
diff --git a/tools/etfw/org.eclipse.ptp.etfw.parallel/pom.xml b/tools/etfw/org.eclipse.ptp.etfw.parallel/pom.xml
index b12859c..b87b609 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.parallel/pom.xml
+++ b/tools/etfw/org.eclipse.ptp.etfw.parallel/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/etfw/org.eclipse.ptp.etfw.tau.papiselect/pom.xml b/tools/etfw/org.eclipse.ptp.etfw.tau.papiselect/pom.xml
index 216c943..382411f 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.tau.papiselect/pom.xml
+++ b/tools/etfw/org.eclipse.ptp.etfw.tau.papiselect/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/etfw/org.eclipse.ptp.etfw.tau.perfdmf/pom.xml b/tools/etfw/org.eclipse.ptp.etfw.tau.perfdmf/pom.xml
index cf9ec45..71d83cd 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.tau.perfdmf/pom.xml
+++ b/tools/etfw/org.eclipse.ptp.etfw.tau.perfdmf/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/etfw/org.eclipse.ptp.etfw.tau.selinst/pom.xml b/tools/etfw/org.eclipse.ptp.etfw.tau.selinst/pom.xml
index 954d83d..54fe339 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.tau.selinst/pom.xml
+++ b/tools/etfw/org.eclipse.ptp.etfw.tau.selinst/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/etfw/org.eclipse.ptp.etfw.tau.selinstfort/pom.xml b/tools/etfw/org.eclipse.ptp.etfw.tau.selinstfort/pom.xml
index 96fa34e..2207f5d 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.tau.selinstfort/pom.xml
+++ b/tools/etfw/org.eclipse.ptp.etfw.tau.selinstfort/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/etfw/org.eclipse.ptp.etfw.tau.ui/META-INF/MANIFEST.MF b/tools/etfw/org.eclipse.ptp.etfw.tau.ui/META-INF/MANIFEST.MF
index 1e93d3a..07d1ae3 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.tau.ui/META-INF/MANIFEST.MF
+++ b/tools/etfw/org.eclipse.ptp.etfw.tau.ui/META-INF/MANIFEST.MF
@@ -6,17 +6,17 @@
 Bundle-Activator: org.eclipse.ptp.etfw.tau.ui.Activator
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
- org.eclipse.ptp.remote.core;bundle-version="6.0.0",
- org.eclipse.core.filesystem;bundle-version="1.3.200",
- org.eclipse.ptp.rm.jaxb.core;bundle-version="1.0.0",
- org.eclipse.core.variables;bundle-version="3.2.600",
- org.eclipse.debug.core;bundle-version="3.7.100",
- org.eclipse.ptp.ems.core;bundle-version="1.0.0",
- org.eclipse.ptp.core;bundle-version="6.0.0",
- org.eclipse.ptp.etfw;bundle-version="5.0.0",
- org.eclipse.ptp.etfw.tau.papiselect;bundle-version="4.0.0",
- org.eclipse.ptp.etfw.tau.perfdmf;bundle-version="3.0.0",
- org.eclipse.ptp.rm.jaxb.control.ui;bundle-version="1.0.0"
+ org.eclipse.remote.core,
+ org.eclipse.core.filesystem,
+ org.eclipse.ptp.rm.jaxb.core,
+ org.eclipse.core.variables,
+ org.eclipse.debug.core,
+ org.eclipse.ptp.ems.core,
+ org.eclipse.ptp.core,
+ org.eclipse.ptp.etfw,
+ org.eclipse.ptp.etfw.tau.papiselect,
+ org.eclipse.ptp.etfw.tau.perfdmf,
+ org.eclipse.ptp.rm.jaxb.control.ui
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.ptp.etfw.tau.ui,
diff --git a/tools/etfw/org.eclipse.ptp.etfw.tau.ui/pom.xml b/tools/etfw/org.eclipse.ptp.etfw.tau.ui/pom.xml
index fba27fe..6a36f84 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.tau.ui/pom.xml
+++ b/tools/etfw/org.eclipse.ptp.etfw.tau.ui/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/etfw/org.eclipse.ptp.etfw.tau.ui/src/org/eclipse/ptp/etfw/tau/ui/PapiOptionDialog.java b/tools/etfw/org.eclipse.ptp.etfw.tau.ui/src/org/eclipse/ptp/etfw/tau/ui/PapiOptionDialog.java
index 7a49024..f76e766 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.tau.ui/src/org/eclipse/ptp/etfw/tau/ui/PapiOptionDialog.java
+++ b/tools/etfw/org.eclipse.ptp.etfw.tau.ui/src/org/eclipse/ptp/etfw/tau/ui/PapiOptionDialog.java
@@ -45,10 +45,10 @@
 import org.eclipse.ptp.internal.etfw.BuildLaunchUtils;
 import org.eclipse.ptp.internal.etfw.RemoteBuildLaunchUtils;
 import org.eclipse.ptp.internal.rm.jaxb.core.JAXBCoreConstants;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
 import org.eclipse.ptp.rm.jaxb.control.ui.AbstractWidget;
 import org.eclipse.ptp.rm.jaxb.control.ui.IWidgetDescriptor;
 import org.eclipse.ptp.rm.jaxb.core.IVariableMap;
+import org.eclipse.remote.core.IRemoteConnection;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
@@ -78,7 +78,7 @@
 	private final Button button;
 	private final IBuildLaunchUtils blt;
 	boolean refreshing = false;
-	protected Map<String, String> varmap = new HashMap<String,String>();
+	protected Map<String, String> varmap = new HashMap<String, String>();
 
 	/**
 	 * The list of all available options found among all available TAU makefiles
@@ -100,11 +100,10 @@
 		super(parent, wd);
 
 		this.remoteConnection = wd.getRemoteConnection();
-		
-		if(remoteConnection!=null){
+
+		if (remoteConnection != null) {
 			blt = new RemoteBuildLaunchUtils(remoteConnection);
-		}
-		else{
+		} else {
 			blt = new BuildLaunchUtils();
 		}
 		setLayout(new GridLayout(1, false));
@@ -197,7 +196,7 @@
 			String pPre = "PAPI_"; //$NON-NLS-1$
 			varmap = new HashMap<String, String>(selset.size());
 			varmap.put("COUNTER1", "GET_TIME_OF_DAY"); //$NON-NLS-1$ //$NON-NLS-2$
-			//String agg = "time";
+			// String agg = "time";
 			Iterator<Object> varit = selset.iterator();
 			int counter = 2;
 			while (varit.hasNext()) {
@@ -206,7 +205,7 @@
 					varTxt = pn + varTxt;
 				}
 				varmap.put("COUNTER" + counter, varTxt); //$NON-NLS-1$
-				//agg+=":"+varTxt;
+				// agg+=":"+varTxt;
 				counter++;
 			}
 
@@ -299,8 +298,8 @@
 	public void setVariableMap(IVariableMap lcMap) {
 		this.map = lcMap;
 	}
-	
-	public Map<String, String> getVariableMap(){
+
+	public Map<String, String> getVariableMap() {
 		return varmap;
 	}
 }
diff --git a/tools/etfw/org.eclipse.ptp.etfw.tau.ui/src/org/eclipse/ptp/etfw/tau/ui/TAUMakefileCombo.java b/tools/etfw/org.eclipse.ptp.etfw.tau.ui/src/org/eclipse/ptp/etfw/tau/ui/TAUMakefileCombo.java
index d4039f5..c643973 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.tau.ui/src/org/eclipse/ptp/etfw/tau/ui/TAUMakefileCombo.java
+++ b/tools/etfw/org.eclipse.ptp.etfw.tau.ui/src/org/eclipse/ptp/etfw/tau/ui/TAUMakefileCombo.java
@@ -37,10 +37,10 @@
 import org.eclipse.ptp.etfw.tau.ui.messages.Messages;
 import org.eclipse.ptp.internal.etfw.RemoteBuildLaunchUtils;
 import org.eclipse.ptp.internal.rm.jaxb.core.JAXBCoreConstants;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
 import org.eclipse.ptp.rm.jaxb.control.ui.AbstractWidget;
 import org.eclipse.ptp.rm.jaxb.control.ui.IWidgetDescriptor;
 import org.eclipse.ptp.rm.jaxb.core.IVariableMap;
+import org.eclipse.remote.core.IRemoteConnection;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.DisposeEvent;
 import org.eclipse.swt.events.DisposeListener;
@@ -94,7 +94,7 @@
 	private IFileStore taulib = null;
 	private LinkedHashSet<String> allmakefiles = null;;
 	boolean refreshing = false;
-	
+
 	final Job job = new Job(Messages.TAUMakefileCombo_UpdatingMakefileList) {
 		@Override
 		protected IStatus run(IProgressMonitor monitor) {
@@ -104,8 +104,6 @@
 				@Override
 				public void run() {
 					updateMakefileCombo();
-					if (combo != null && !combo.isDisposed())
-						combo.getParent().layout();
 					refreshing = false;
 				}
 			});
@@ -135,8 +133,6 @@
 		combo.select(0);
 		combo.setEnabled(false);
 
-		
-
 		combo.addDisposeListener(new DisposeListener() {
 
 			@Override
@@ -146,7 +142,6 @@
 		});
 
 		if (allmakefiles == null) {
-
 			job.setUser(true);
 			job.schedule();
 		}
@@ -154,23 +149,19 @@
 
 	@Override
 	public void setEnabled(boolean enabled) {
-		if (allmakefiles == null && enabled && !refreshing) {
+		if (!refreshing) {
 			refreshing = true;
 			Display.getDefault().asyncExec(new Runnable() {
 				@Override
 				public void run() {
 					initMakefiles();
-					String[] items = allmakefiles.toArray(new String[0]);
-					combo.setItems(items);
-					getParent().layout(true);
+					//String[] items = allmakefiles.toArray(new String[0]);
+					//combo.setItems(items);
+					//getParent().layout(true);
+					updateMakefileCombo();
 					refreshing = false;
 				}
 			});
-
-		}
-
-		if (!refreshing) {
-			updateMakefileCombo();
 		}
 	}
 
@@ -212,10 +203,11 @@
 		combo.setItems(items);
 		combo.setEnabled(true);
 		if (items.length > 1) {
-			if (preDex > 0)
+			if (preDex > 0) {
 				combo.select(preDex);
-			else
+			} else {
 				combo.select(1);
+			}
 			combo.notifyListeners(SWT.Selection, null);
 		}
 		getParent().layout(true);
@@ -296,10 +288,10 @@
 			try {
 				mfiles = taulib.childStores(EFS.NONE, null);
 				tmfiles = new ArrayList<IFileStore>();
-				for (int i = 0; i < mfiles.length; i++) {
-					IFileInfo finf = mfiles[i].fetchInfo();
+				for (IFileStore mfile : mfiles) {
+					IFileInfo finf = mfile.fetchInfo();
 					if (!finf.isDirectory() && finf.getName().startsWith(ITauConstants.TAU_MAKEFILE_PREFIX)) {
-						tmfiles.add(mfiles[i]);
+						tmfiles.add(mfile);
 					}
 				}
 			} catch (CoreException e) {
@@ -316,21 +308,23 @@
 	}
 
 	public String getSelection() {
-		String selection = this.combo.getItem(combo.getSelectionIndex());
-		String makefilePath = taulib.toURI().getPath() + JAXBCoreConstants.REMOTE_PATH_SEP + selection;
+		String selection = JAXBCoreConstants.ZEROSTR;
+
+		String makefilePath = JAXBCoreConstants.ZEROSTR;
+		if (taulib != null && combo.getSelectionIndex() != -1) {
+			selection = this.combo.getItem(combo.getSelectionIndex());
+			makefilePath = taulib.toURI().getPath() + JAXBCoreConstants.REMOTE_PATH_SEP + selection;
+		}
 		return makefilePath;
 	}
-	
-	public void setConfiguration(ILaunchConfiguration configuration){
-		if(blt!=null&&blt.getConfig()==null){
+
+	public void setConfiguration(ILaunchConfiguration configuration) {
+		if (blt != null && blt.getConfig() == null) {
 			blt.setConfig(configuration);
-			try {
-				job.join();
-			} catch (InterruptedException e) {
-				e.printStackTrace();
+			if (!refreshing) {
+				job.setUser(true);
+				job.schedule();
 			}
-			job.setUser(true);
-			job.schedule();
 		}
 	}
 
diff --git a/tools/etfw/org.eclipse.ptp.etfw.tau.ui/src/org/eclipse/ptp/etfw/tau/ui/model/MakefileComboUpdateModel.java b/tools/etfw/org.eclipse.ptp.etfw.tau.ui/src/org/eclipse/ptp/etfw/tau/ui/model/MakefileComboUpdateModel.java
index 15657ee..545c895 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.tau.ui/src/org/eclipse/ptp/etfw/tau/ui/model/MakefileComboUpdateModel.java
+++ b/tools/etfw/org.eclipse.ptp.etfw.tau.ui/src/org/eclipse/ptp/etfw/tau/ui/model/MakefileComboUpdateModel.java
@@ -24,6 +24,7 @@
 public class MakefileComboUpdateModel extends AbstractUpdateModel implements SelectionListener {
 
 	private final TAUMakefileCombo makefileCombo;
+	private boolean updating = false;
 
 	public MakefileComboUpdateModel(String name, IUpdateHandler handler, Control control) {
 		super(name, handler);
@@ -32,13 +33,18 @@
 
 			@Override
 			public void handleEvent(Event event) {
-				try {
-					Object value = storeValue();
-					handleUpdate(value);
-					if(value!=null&&value instanceof String){
-						makefileCombo.setSelectedMakefile((String)value);
+				if (!updating) {
+					updating = true;
+					try {
+						Object value = storeValue();
+						handleUpdate(value);
+						if (value != null && value instanceof String) {
+							makefileCombo.setSelectedMakefile((String) value);
+						}
+					} catch (Exception ignored) {
+						ignored.printStackTrace();
 					}
-				} catch (Exception ignored) {
+					updating = false;
 				}
 			}
 		});
@@ -64,15 +70,15 @@
 		try {
 			Object value = storeValue();
 			handleUpdate(value);
-			if(value!=null&&value instanceof String){
-				makefileCombo.setSelectedMakefile((String)value);
+			if (value != null && value instanceof String) {
+				makefileCombo.setSelectedMakefile((String) value);
 			}
 		} catch (Exception ignored) {
 			ignored.printStackTrace();
 		}
 
 	}
-	
+
 	/*
 	 * (non-Javadoc)
 	 * 
@@ -82,14 +88,14 @@
 	 */
 	@Override
 	public void initialize(ILaunchConfiguration configuration, IVariableMap rmMap, IVariableMap lcMap) {
-		
-		String val = (String)lcMap.getValue(name);
-		if(val!=null&&val.length()>0&&val.contains("Makefile.tau")){
+
+		String val = (String) lcMap.getValue(name);
+		if (val != null && val.length() > 0 && val.contains("Makefile.tau")) {
 			makefileCombo.setSelectedMakefile(val);
 		}
-		
+
 		makefileCombo.setConfiguration(configuration);
-		
+
 		super.initialize(configuration, rmMap, lcMap);
 	}
 
diff --git a/tools/etfw/org.eclipse.ptp.etfw.tau.ui/src/org/eclipse/ptp/etfw/tau/ui/model/PerformanceDatabaseComboModel.java b/tools/etfw/org.eclipse.ptp.etfw.tau.ui/src/org/eclipse/ptp/etfw/tau/ui/model/PerformanceDatabaseComboModel.java
index 85e2f8a..0da0a8d 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.tau.ui/src/org/eclipse/ptp/etfw/tau/ui/model/PerformanceDatabaseComboModel.java
+++ b/tools/etfw/org.eclipse.ptp.etfw.tau.ui/src/org/eclipse/ptp/etfw/tau/ui/model/PerformanceDatabaseComboModel.java
@@ -9,7 +9,6 @@
  *******************************************************************************/
 package org.eclipse.ptp.etfw.tau.ui.model;
 
-import org.eclipse.core.runtime.CoreException;
 import org.eclipse.debug.core.ILaunchConfiguration;
 import org.eclipse.ptp.etfw.tau.ui.PerformanceDatabaseCombo;
 import org.eclipse.ptp.internal.rm.jaxb.core.JAXBCoreConstants;
diff --git a/tools/etfw/org.eclipse.ptp.etfw.tau/.classpath b/tools/etfw/org.eclipse.ptp.etfw.tau/.classpath
index 3f00c21..64c5e31 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.tau/.classpath
+++ b/tools/etfw/org.eclipse.ptp.etfw.tau/.classpath
@@ -2,6 +2,6 @@
 <classpath>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry excluding="org/eclipse/ptp/tau/TAULaunch.java|org/eclipse/ptp/etfw/tau/TAUAnalysisTab.java" kind="src" path="src"/>
+	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/tools/etfw/org.eclipse.ptp.etfw.tau/pom.xml b/tools/etfw/org.eclipse.ptp.etfw.tau/pom.xml
index 5f6f0df..05288db 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.tau/pom.xml
+++ b/tools/etfw/org.eclipse.ptp.etfw.tau/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/etfw/org.eclipse.ptp.etfw.tau/src/org/eclipse/ptp/etfw/tau/TAUAnalysisTab.java b/tools/etfw/org.eclipse.ptp.etfw.tau/src/org/eclipse/ptp/etfw/tau/TAUAnalysisTab.java
index 547a760..7de2ae2 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.tau/src/org/eclipse/ptp/etfw/tau/TAUAnalysisTab.java
+++ b/tools/etfw/org.eclipse.ptp.etfw.tau/src/org/eclipse/ptp/etfw/tau/TAUAnalysisTab.java
@@ -45,21 +45,21 @@
 import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.jface.window.Window;
 import org.eclipse.ptp.core.util.LaunchUtils;
-import org.eclipse.ptp.etfw.ETFWUtils;
 import org.eclipse.ptp.etfw.IBuildLaunchUtils;
 import org.eclipse.ptp.etfw.IToolLaunchConfigurationConstants;
-import org.eclipse.ptp.internal.etfw.BuildLaunchUtils;
-import org.eclipse.ptp.internal.etfw.RemoteBuildLaunchUtils;
+import org.eclipse.ptp.etfw.tau.ITAULaunchConfigurationConstants;
+import org.eclipse.ptp.etfw.tau.LaunchImages;
 import org.eclipse.ptp.etfw.tau.messages.Messages;
 import org.eclipse.ptp.etfw.tau.papiselect.PapiListSelectionDialog;
 import org.eclipse.ptp.etfw.tau.papiselect.papic.EventTreeDialog;
 import org.eclipse.ptp.etfw.tau.perfdmf.PerfDMFUIPlugin;
 import org.eclipse.ptp.etfw.tau.perfdmf.views.PerfDMFView;
-import org.eclipse.ptp.etfw.toolopts.ToolOption;
 import org.eclipse.ptp.etfw.toolopts.ToolPane;
 import org.eclipse.ptp.etfw.toolopts.ToolPaneListener;
 import org.eclipse.ptp.etfw.toolopts.ToolsOptionsConstants;
 import org.eclipse.ptp.etfw.ui.AbstractToolConfigurationTab;
+import org.eclipse.ptp.internal.etfw.BuildLaunchUtils;
+import org.eclipse.ptp.internal.etfw.RemoteBuildLaunchUtils;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.ScrolledComposite;
 import org.eclipse.swt.events.ModifyEvent;
@@ -273,14 +273,14 @@
 	 */
 	private IFileStore taulib = null;
 
-	protected Map<String, Object> archvarmap = null;
+	protected Map<String, String> archvarmap = null;
 
-	protected Map<String, Object> varmap = null;
+	protected Map<String, String> varmap = null;
 
-	// TODO: This isn't generic. We need to get this pane explicitly  Fixing: Moving individual panes into standard UI
+	// TODO: This isn't generic. We need to get this pane explicitly Fixing: Moving individual panes into standard UI
 	//protected final ToolPane tauOpts = Activator.getTool("TAU").getFirstBuilder(null).getGlobalCompiler().toolPanes[0];// toolPanes[0];//ToolMaker.makeTools(tauToolXML)[0].toolPanes[0]; //$NON-NLS-1$
 	//protected final ToolPane tauEnv = Activator.getTool("TAU").getNthRunner(null, 2).global.toolPanes[0]; //$NON-NLS-1$
-	
+
 	// protected ToolPane custOpts=null;
 
 	// private static File tauToolXML= null;
@@ -299,12 +299,11 @@
 	// }
 	private final static String UNIX_SLASH = "/"; //$NON-NLS-1$
 
-	
-	private static final String selFileValConf="Tau Compiler.performance.options.configuration_id_-OPTTAUSELECTFILE_ARGUMENT_SAVED";
-	private static final String selFileButtonConf="Tau Compiler.performance.options.configuration_id_-OPTTAUSELECTFILE_BUTTON_STATE";
-	String selectFieldVal=null;
-	boolean selectFieldChecked=false;
-	
+	private static final String selFileValConf = "Tau Compiler.performance.options.configuration_id_-OPTTAUSELECTFILE_ARGUMENT_SAVED";
+	private static final String selFileButtonConf = "Tau Compiler.performance.options.configuration_id_-OPTTAUSELECTFILE_BUTTON_STATE";
+	String selectFieldVal = null;
+	boolean selectFieldChecked = false;
+
 	/**
 	 * Listen for activity in the TAU makefile combo-box, CheckItem widgets or other options
 	 * 
@@ -323,19 +322,19 @@
 				selmakefile = makecombo.getItem(makecombo.getSelectionIndex());
 				updateComboDerivedOptions(selmakefile);
 				updateLaunchConfigurationDialog();
-			} 
-			//TODO: Find a way to make this work with independently defined panes
-//			else if (source == pdtRadios[0] || source == pdtRadios[1]) {
-//				if (pdtRadios[0].getSelection()) {
-//					pdtOpt.setSelected(true);
-//					compOpt.setSelected(false);
-//				} else {
-//					pdtOpt.setSelected(false);
-//					compOpt.setSelected(true);
-//				}
-//				tauOpts.OptUpdate();
-//				tauEnv.OptUpdate();
-//			}
+			}
+			// TODO: Find a way to make this work with independently defined panes
+			// else if (source == pdtRadios[0] || source == pdtRadios[1]) {
+			// if (pdtRadios[0].getSelection()) {
+			// pdtOpt.setSelected(true);
+			// compOpt.setSelected(false);
+			// } else {
+			// pdtOpt.setSelected(false);
+			// compOpt.setSelected(true);
+			// }
+			// tauOpts.OptUpdate();
+			// tauEnv.OptUpdate();
+			// }
 			// else
 			// if(source==buildonlyCheck){
 			// updateLaunchConfigurationDialog();
@@ -352,47 +351,49 @@
 				handlePapiSelect();
 			}
 
-			/*else if (source.equals(selectRadios[0]) || source.equals(selectRadios[3])) {
-				if (selectRadios[0].getSelection() || selectRadios[3].getSelection()) {
-					selectOpt.setSelected(false);
-					selectOpt.setArg(""); //$NON-NLS-1$
-					selectOpt.setEnabled(false);
-				}
-			} else if (source.equals(selectRadios[1])) {
-				if (selectRadios[1].getSelection()) {
-					selectOpt.setSelected(true);
-					selectOpt.setArg(ToolsOptionsConstants.PROJECT_ROOT + UNIX_SLASH + "tau.selective"); //$NON-NLS-1$
-					selectOpt.setEnabled(false);
-				}
-			} else if (source.equals(selectRadios[2])) {
-				if (!selectRadios[2].getSelection()) {
-					selComp.setEnabled(false);
-					tauSelectFile.setEnabled(false);
-					tauSelectFile.setEnabled(false);
-				} else {
-					selComp.setEnabled(true);
-					tauSelectFile.setEnabled(true);
-					tauSelectFile.setEnabled(true);
-					selectOpt.setSelected(true);
-					selectOpt.setArg(tauSelectFile.getText());
-				}
-				selectOpt.setEnabled(false);
-			}*/
-			
+			/*
+			 * else if (source.equals(selectRadios[0]) || source.equals(selectRadios[3])) {
+			 * if (selectRadios[0].getSelection() || selectRadios[3].getSelection()) {
+			 * selectOpt.setSelected(false);
+			 * selectOpt.setArg(""); //$NON-NLS-1$
+			 * selectOpt.setEnabled(false);
+			 * }
+			 * } else if (source.equals(selectRadios[1])) {
+			 * if (selectRadios[1].getSelection()) {
+			 * selectOpt.setSelected(true);
+			 * selectOpt.setArg(ToolsOptionsConstants.PROJECT_ROOT + UNIX_SLASH + "tau.selective"); //$NON-NLS-1$
+			 * selectOpt.setEnabled(false);
+			 * }
+			 * } else if (source.equals(selectRadios[2])) {
+			 * if (!selectRadios[2].getSelection()) {
+			 * selComp.setEnabled(false);
+			 * tauSelectFile.setEnabled(false);
+			 * tauSelectFile.setEnabled(false);
+			 * } else {
+			 * selComp.setEnabled(true);
+			 * tauSelectFile.setEnabled(true);
+			 * tauSelectFile.setEnabled(true);
+			 * selectOpt.setSelected(true);
+			 * selectOpt.setArg(tauSelectFile.getText());
+			 * }
+			 * selectOpt.setEnabled(false);
+			 * }
+			 */
+
 			else if (source.equals(selectRadios[0]) || source.equals(selectRadios[3])) {
 				if (selectRadios[0].getSelection() || selectRadios[3].getSelection()) {
-					//selectOpt.setSelected(false);
-					selectFieldChecked=false;
+					// selectOpt.setSelected(false);
+					selectFieldChecked = false;
 					//selectOpt.setArg(""); //$NON-NLS-1$
-					//selectOpt.setEnabled(false);
+					// selectOpt.setEnabled(false);
 				}
 			} else if (source.equals(selectRadios[1])) {
 				if (selectRadios[1].getSelection()) {
-					//selectOpt.setSelected(true);
+					// selectOpt.setSelected(true);
 					//selectOpt.setArg(ToolsOptionsConstants.PROJECT_ROOT + UNIX_SLASH + "tau.selective"); //$NON-NLS-1$
-					selectFieldChecked=true;
-					selectFieldVal=ToolsOptionsConstants.PROJECT_ROOT + UNIX_SLASH + "tau.selective";
-					//selectOpt.setEnabled(false);
+					selectFieldChecked = true;
+					selectFieldVal = ToolsOptionsConstants.PROJECT_ROOT + UNIX_SLASH + "tau.selective";
+					// selectOpt.setEnabled(false);
 				}
 			} else if (source.equals(selectRadios[2])) {
 				if (!selectRadios[2].getSelection()) {
@@ -403,27 +404,26 @@
 					selComp.setEnabled(true);
 					tauSelectFile.setEnabled(true);
 					tauSelectFile.setEnabled(true);
-					//selectOpt.setSelected(true);
-					//selectOpt.setArg(tauSelectFile.getText());
-					selectFieldChecked=true;
-					selectFieldVal=tauSelectFile.getText();
+					// selectOpt.setSelected(true);
+					// selectOpt.setArg(tauSelectFile.getText());
+					selectFieldChecked = true;
+					selectFieldVal = tauSelectFile.getText();
 				}
-				//selectOpt.setEnabled(false);
+				// selectOpt.setEnabled(false);
 			}
-			
-			
+
 			/*
 			 * If not one of the above options, then one of the makefile selection options has been trippedIterate through until we
 			 * find which one, then check or uncheck it as necessary and reinitializethe combo box and the remaining available
 			 * checkboxes
 			 */
 			else {
-				for (int i = 0; i < checks.length; i++) {
-					if (source == checks[i].unitCheck) {
+				for (CheckItem check : checks) {
+					if (source == check.unitCheck) {
 						if (((Button) source).getSelection()) {
-							selopts.add(checks[i].makeCmd);
+							selopts.add(check.makeCmd);
 						} else {
-							selopts.remove(checks[i].makeCmd);
+							selopts.remove(check.makeCmd);
 						}
 						initMakeCombo();
 						reinitMakeChecks();
@@ -442,8 +442,8 @@
 			Object source = evt.getSource();
 			if (source == tauSelectFile) {
 				if (selectRadios[2].getSelection()) {
-					//selectOpt.setArg(tauSelectFile.getText());
-					selectFieldVal=tauSelectFile.getText();
+					// selectOpt.setArg(tauSelectFile.getText());
+					selectFieldVal = tauSelectFile.getText();
 				}
 			}
 			updateLaunchConfigurationDialog();
@@ -515,8 +515,8 @@
 	 */
 	private void initMakeChecks() {
 		if ((allmakefiles == null) || (allmakefiles.size() == 0) || (allopts == null) || (allopts.size() == 0)) {
-			for (int i = 0; i < checks.length; i++) {
-				checks[i].unitCheck.setEnabled(false);
+			for (CheckItem check : checks) {
+				check.unitCheck.setEnabled(false);
 			}
 			return;
 		}
@@ -620,10 +620,10 @@
 				e.printStackTrace();
 			}
 			tmfiles = new ArrayList<IFileStore>();
-			for (int i = 0; i < mfiles.length; i++) {
-				IFileInfo finf = mfiles[i].fetchInfo();
+			for (IFileStore mfile : mfiles) {
+				IFileInfo finf = mfile.fetchInfo();
 				if (!finf.isDirectory() && finf.getName().startsWith(TAU_MAKEFILE_PREFIX)) {
-					tmfiles.add(mfiles[i]);
+					tmfiles.add(mfile);
 				}
 			}
 
@@ -723,20 +723,20 @@
 				// pdtRadios[1].setSelection(false);
 				// compOpt.setSelected(false);
 
-//				tauOpts.OptUpdate();
-//				tauEnv.OptUpdate();
+				// tauOpts.OptUpdate();
+				// tauEnv.OptUpdate();
 			}
 
 			// this.pdtRadios[1].setEnabled(true);
 		} else {
 			pdtRadios[0].setEnabled(false);
 			pdtRadios[0].setSelection(false);
-//			pdtOpt.setSelected(false);
+			// pdtOpt.setSelected(false);
 			pdtRadios[1].setSelection(true);
-//			compOpt.setSelected(true);
+			// compOpt.setSelected(true);
 
-//			tauOpts.OptUpdate();
-//			tauEnv.OptUpdate();
+			// tauOpts.OptUpdate();
+			// tauEnv.OptUpdate();
 		}
 
 		/*
@@ -904,27 +904,27 @@
 		// tauOpts.prependOpts="-tau_options=";
 		// tauOpts.separateOpts=" ";
 
-//		TabItem envTab = new TabItem(tabParent, SWT.NULL);
-//		envTab.setText(tauEnv.paneName.trim());
+		// TabItem envTab = new TabItem(tabParent, SWT.NULL);
+		// envTab.setText(tauEnv.paneName.trim());
 
-		//ScrolledComposite scrollEnv = new ScrolledComposite(tabParent, SWT.V_SCROLL);
+		// ScrolledComposite scrollEnv = new ScrolledComposite(tabParent, SWT.V_SCROLL);
 
-		//Composite envComp = new Composite(scrollEnv, SWT.NONE);
+		// Composite envComp = new Composite(scrollEnv, SWT.NONE);
 
-		//envTab.setControl(scrollEnv);
+		// envTab.setControl(scrollEnv);
 
 		/*
 		 * The actual controls of optComp
 		 */
 
-		//tauEnv.makeToolPane(envComp, new TauPaneListener(tauEnv));
+		// tauEnv.makeToolPane(envComp, new TauPaneListener(tauEnv));
 
-//		envComp.pack();
-//		int envCompHeight = envComp.computeSize(SWT.DEFAULT, SWT.DEFAULT).y;
-//		scrollEnv.setContent(envComp);
-//		scrollEnv.setMinSize(400, envCompHeight);
-//		scrollEnv.setExpandHorizontal(true);
-//		scrollEnv.setExpandVertical(true);
+		// envComp.pack();
+		// int envCompHeight = envComp.computeSize(SWT.DEFAULT, SWT.DEFAULT).y;
+		// scrollEnv.setContent(envComp);
+		// scrollEnv.setMinSize(400, envCompHeight);
+		// scrollEnv.setExpandHorizontal(true);
+		// scrollEnv.setExpandVertical(true);
 
 		/*
 		 * 
@@ -935,27 +935,27 @@
 		// tauOpts.prependOpts="-tau_options=";
 		// tauOpts.separateOpts=" ";
 
-//		TabItem optTab = new TabItem(tabParent, SWT.NULL);
-//		optTab.setText(tauOpts.paneName.trim());
+		// TabItem optTab = new TabItem(tabParent, SWT.NULL);
+		// optTab.setText(tauOpts.paneName.trim());
 
-//		ScrolledComposite scrollOpt = new ScrolledComposite(tabParent, SWT.V_SCROLL);
-//
-//		Composite optComp = new Composite(scrollOpt, SWT.NONE);
-//
-//		optTab.setControl(scrollOpt);
+		// ScrolledComposite scrollOpt = new ScrolledComposite(tabParent, SWT.V_SCROLL);
+		//
+		// Composite optComp = new Composite(scrollOpt, SWT.NONE);
+		//
+		// optTab.setControl(scrollOpt);
 
 		/*
 		 * The actual controls of optComp
 		 */
 
-//		tauOpts.makeToolPane(optComp, new TauPaneListener(tauOpts));
-//
-//		optComp.pack();
-//		int optCompHeight = optComp.computeSize(SWT.DEFAULT, SWT.DEFAULT).y;
-//		scrollOpt.setContent(optComp);
-//		scrollOpt.setMinSize(400, optCompHeight);
-//		scrollOpt.setExpandHorizontal(true);
-//		scrollOpt.setExpandVertical(true);
+		// tauOpts.makeToolPane(optComp, new TauPaneListener(tauOpts));
+		//
+		// optComp.pack();
+		// int optCompHeight = optComp.computeSize(SWT.DEFAULT, SWT.DEFAULT).y;
+		// scrollOpt.setContent(optComp);
+		// scrollOpt.setMinSize(400, optCompHeight);
+		// scrollOpt.setExpandHorizontal(true);
+		// scrollOpt.setExpandVertical(true);
 
 		/*
 		 * 
@@ -997,8 +997,8 @@
 
 		selectRadios[3] = createRadioButton(selinstComp, Messages.TAUAnalysisTab_Automatic);
 		// selectRadios[3].setEnabled(false);
-		for (int i = 0; i < selectRadios.length; i++) {
-			selectRadios[i].addSelectionListener(listener);
+		for (Button selectRadio : selectRadios) {
+			selectRadio.addSelectionListener(listener);
 		}
 
 		/*
@@ -1078,17 +1078,17 @@
 		configuration.setAttribute(ITAULaunchConfigurationConstants.SELECT, 0);
 		configuration.setAttribute(ITAULaunchConfigurationConstants.SELECT_FILE, ""); //$NON-NLS-1$
 
-		configuration.setAttribute(ITAULaunchConfigurationConstants.ENVVARS, (Map<String, Object>) null);
+		configuration.setAttribute(ITAULaunchConfigurationConstants.ENVVARS, (Map<String, String>) null);
 
 		configuration.setAttribute(ITAULaunchConfigurationConstants.TAU_MAKEFILE, ""); //$NON-NLS-1$
 
-//		tauOpts.setDefaults(configuration);
-//		tauEnv.setDefaults(configuration);
+		// tauOpts.setDefaults(configuration);
+		// tauEnv.setDefaults(configuration);
 	}
 
-//	ToolOption pdtOpt = null;// tauOpts.getOption("-optPDTInst");
-//	ToolOption compOpt = null;// tauOpts.getOption("-optCompInst");
-	//ToolOption selectOpt = null;
+	// ToolOption pdtOpt = null;// tauOpts.getOption("-optPDTInst");
+	// ToolOption compOpt = null;// tauOpts.getOption("-optCompInst");
+	// ToolOption selectOpt = null;
 
 	/**
 	 * @see ILaunchConfigurationTab#initializeFrom(ILaunchConfiguration)
@@ -1108,10 +1108,10 @@
 			initMakefiles();
 			initMakeChecks();
 
-			for (int i = 0; i < checks.length; i++) {
-				checks[i].unitCheck.setSelection(configuration.getAttribute(checks[i].confString, checks[i].defState));
-				if (checks[i].unitCheck.getSelection() && checks[i].unitCheck.getEnabled()) {
-					selopts.add(checks[i].makeCmd);
+			for (CheckItem check : checks) {
+				check.unitCheck.setSelection(configuration.getAttribute(check.confString, check.defState));
+				if (check.unitCheck.getSelection() && check.unitCheck.getEnabled()) {
+					selopts.add(check.makeCmd);
 				}
 			}
 
@@ -1128,12 +1128,12 @@
 			}
 			runTauinc.setSelection(configuration.getAttribute(ITAULaunchConfigurationConstants.TAUINC, false));
 
-//			tauOpts.OptUpdate();
-//
-//			tauOpts.initializePane(configuration);
-//
-//			tauEnv.OptUpdate();
-//			tauEnv.initializePane(configuration);
+			// tauOpts.OptUpdate();
+			//
+			// tauOpts.initializePane(configuration);
+			//
+			// tauEnv.OptUpdate();
+			// tauEnv.initializePane(configuration);
 
 			int pcr = configuration.getAttribute(ITAULaunchConfigurationConstants.PAPISELECT, 0);
 			if (pcr > 1) {
@@ -1146,20 +1146,20 @@
 				pdtSel = 0;
 			}
 			pdtRadios[pdtSel].setSelection(true);
-			//TODO: Find a way to make this logic work
-//			pdtOpt = tauOpts.getOption("-optPDTInst"); //$NON-NLS-1$
-//			compOpt = tauOpts.getOption("-optCompInst"); //$NON-NLS-1$
-//			if (pdtOpt != null && compOpt != null) {
-//				pdtOpt.setEnabled(false);
-//				compOpt.setEnabled(false);
-//				if (pdtSel == 0) {
-//					pdtOpt.setSelected(true);
-//					compOpt.setSelected(false);
-//				} else {
-//					pdtOpt.setSelected(false);
-//					compOpt.setSelected(true);
-//				}
-//			}
+			// TODO: Find a way to make this logic work
+			//			pdtOpt = tauOpts.getOption("-optPDTInst"); //$NON-NLS-1$
+			//			compOpt = tauOpts.getOption("-optCompInst"); //$NON-NLS-1$
+			// if (pdtOpt != null && compOpt != null) {
+			// pdtOpt.setEnabled(false);
+			// compOpt.setEnabled(false);
+			// if (pdtSel == 0) {
+			// pdtOpt.setSelected(true);
+			// compOpt.setSelected(false);
+			// } else {
+			// pdtOpt.setSelected(false);
+			// compOpt.setSelected(true);
+			// }
+			// }
 
 			selmakefile = configuration.getAttribute(ITAULaunchConfigurationConstants.TAU_MAKENAME, (String) null);
 
@@ -1177,17 +1177,16 @@
 				tauSelectFile.setEnabled(false);
 				tauSelectFile.setEnabled(false);
 			}
-//TODO: Find a way to make this cross-pane logic work
-			
+			// TODO: Find a way to make this cross-pane logic work
 
-			selectFieldVal=configuration.getAttribute(selFileValConf,"");
-			selectFieldChecked=configuration.getAttribute(selFileButtonConf,false);
-			
-//			selectOpt = new ToolOption();// tauOpts.getOption("-optTauSelectFile"); //$NON-NLS-1$
-//			if (selectOpt != null) {
-//				selectOpt.setEnabled(false);
-//				// selectOpt.setArg(configuration.getAttribute(ITAULaunchConfigurationConstants.INTERNAL_SELECTIVE_FILE, ""));
-//			}
+			selectFieldVal = configuration.getAttribute(selFileValConf, "");
+			selectFieldChecked = configuration.getAttribute(selFileButtonConf, false);
+
+			//			selectOpt = new ToolOption();// tauOpts.getOption("-optTauSelectFile"); //$NON-NLS-1$
+			// if (selectOpt != null) {
+			// selectOpt.setEnabled(false);
+			// // selectOpt.setArg(configuration.getAttribute(ITAULaunchConfigurationConstants.INTERNAL_SELECTIVE_FILE, ""));
+			// }
 
 			// buildonlyCheck.setSelection(configuration.getAttribute(
 			// IToolLaunchConfigurationConstants.BUILDONLY, false));
@@ -1210,7 +1209,7 @@
 
 			portalCheck.setSelection(configuration.getAttribute(ITAULaunchConfigurationConstants.PORTAL, false));
 
-			varmap = archvarmap = configuration.getAttribute(ITAULaunchConfigurationConstants.ENVVARS, (Map<String, Object>) null);
+			varmap = archvarmap = configuration.getAttribute(ITAULaunchConfigurationConstants.ENVVARS, (Map<String, String>) null);
 
 			//Activator.getDefault().getPluginPreferences().setDefault(ITAULaunchConfigurationConstants.TAU_CHECK_AUTO_OPT,true); //$NON-NLS-1$
 
@@ -1235,8 +1234,8 @@
 			return;
 		}
 
-		for (int i = 0; i < dbs.length; i++) {
-			dbCombo.add(dbs[i]);
+		for (String db : dbs) {
+			dbCombo.add(db);
 			// System.out.println(dbs[i]);
 		}
 
@@ -1252,20 +1251,20 @@
 	 */
 	@SuppressWarnings("unchecked")
 	public void performApply(ILaunchConfigurationWorkingCopy configuration) {
-		for (int i = 0; i < checks.length; i++) {
-			configuration.setAttribute(checks[i].confString, checks[i].unitCheck.getSelection());
+		for (CheckItem check : checks) {
+			configuration.setAttribute(check.confString, check.unitCheck.getSelection());
 		}
 
 		configuration.setAttribute(ITAULaunchConfigurationConstants.TAUINC, runTauinc.getSelection());
 
-		//tauOpts.performApply(configuration);
+		// tauOpts.performApply(configuration);
 
-//		configuration.setAttribute(tauOpts.configID, tauOpts.getOptionString());
-//		configuration.setAttribute(tauOpts.configVarID, tauOpts.getVarMap());
-//
-//		tauEnv.performApply(configuration);
-//		configuration.setAttribute(tauEnv.configID, tauEnv.getOptionString());
-//		configuration.setAttribute(tauEnv.configVarID, tauEnv.getVarMap());
+		// configuration.setAttribute(tauOpts.configID, tauOpts.getOptionString());
+		// configuration.setAttribute(tauOpts.configVarID, tauOpts.getVarMap());
+		//
+		// tauEnv.performApply(configuration);
+		// configuration.setAttribute(tauEnv.configID, tauEnv.getOptionString());
+		// configuration.setAttribute(tauEnv.configVarID, tauEnv.getVarMap());
 
 		// configuration.setAttribute(IToolLaunchConfigurationConstants.BUILDONLY,
 		// buildonlyCheck.getSelection());
@@ -1284,10 +1283,10 @@
 		 */
 		if (((varmap == null) && (archvarmap != null)) || ((varmap != null) && (archvarmap == null))
 				|| ((varmap != null) && (archvarmap != null) && !varmap.equals(archvarmap))) {
-			Map<String, Object> envvars = null;
+			Map<String, String> envvars = null;
 
 			try {
-				envvars = configuration.getAttribute(ILaunchManager.ATTR_ENVIRONMENT_VARIABLES, (Map<String, Object>) null);
+				envvars = configuration.getAttribute(ILaunchManager.ATTR_ENVIRONMENT_VARIABLES, (Map<String, String>) null);
 			} catch (CoreException e) {
 				e.printStackTrace();
 			}
@@ -1301,7 +1300,7 @@
 
 			if ((varmap != null) && (varmap.size() > 0)) {
 				if (envvars == null) {
-					envvars = new HashMap<String, Object>();
+					envvars = new HashMap<String, String>();
 				}
 				envvars.putAll(varmap);
 			}
@@ -1366,8 +1365,7 @@
 			}
 			// configuration.setAttribute(ITAULaunchConfigurationConstants.SELECT_COMMAND,selcommand);
 			configuration.setAttribute(ITAULaunchConfigurationConstants.SELECT, selected);
-			
-			
+
 			configuration.setAttribute(selFileValConf, selectFieldVal);
 			configuration.setAttribute(selFileButtonConf, selectFieldChecked);
 		}
@@ -1604,7 +1602,7 @@
 
 			String pn = "PAPI_NATIVE_"; //$NON-NLS-1$
 			String pPre = "PAPI_"; //$NON-NLS-1$
-			varmap = new HashMap<String, Object>(selset.size());
+			varmap = new HashMap<String, String>(selset.size());
 			varmap.put("COUNTER1", "GET_TIME_OF_DAY"); //$NON-NLS-1$ //$NON-NLS-2$
 			Iterator<Object> varit = selset.iterator();
 			int counter = 2;
diff --git a/tools/etfw/org.eclipse.ptp.etfw.tau/src/org/eclipse/ptp/etfw/tau/TAUMakefileTab.java b/tools/etfw/org.eclipse.ptp.etfw.tau/src/org/eclipse/ptp/etfw/tau/TAUMakefileTab.java
index 7bb0823..e819c6c 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.tau/src/org/eclipse/ptp/etfw/tau/TAUMakefileTab.java
+++ b/tools/etfw/org.eclipse.ptp.etfw.tau/src/org/eclipse/ptp/etfw/tau/TAUMakefileTab.java
@@ -269,8 +269,7 @@
 	 * @param mw
 	 * @return
 	 */
-	protected static GridLayout createGridLayout(int columns, boolean isEqual, int mh,
-			int mw) {
+	protected static GridLayout createGridLayout(int columns, boolean isEqual, int mh, int mw) {
 		final GridLayout gridLayout = new GridLayout();
 		gridLayout.numColumns = columns;
 		gridLayout.makeColumnsEqualWidth = isEqual;
@@ -404,9 +403,9 @@
 	// URL testURL=ETFWUtils.getDefault().getBundle().getEntry("toolxml"+File.separator+"tau_tool.xml");
 	// tauToolXML = new File(new URI(FileLocator.toFileURL(testURL).toString().replaceAll(" ", "%20")));
 
-	protected Map<String, Object> archvarmap = null;
+	protected Map<String, String> archvarmap = null;
 
-	protected Map<String, Object> varmap = null;
+	protected Map<String, String> varmap = null;
 
 	// } catch (Exception e) {
 	// e.printStackTrace();
@@ -792,7 +791,7 @@
 
 			final String pn = "PAPI_NATIVE_"; //$NON-NLS-1$
 			final String pPre = "PAPI_"; //$NON-NLS-1$
-			varmap = new HashMap<String, Object>(selset.size());
+			varmap = new HashMap<String, String>(selset.size());
 			varmap.put("COUNTER1", "GET_TIME_OF_DAY"); //$NON-NLS-1$ //$NON-NLS-2$
 			final Iterator<Object> varit = selset.iterator();
 			int counter = 2;
@@ -810,8 +809,7 @@
 		}
 	}
 
-	public void initializePane(ILaunchConfiguration configuration)
-			throws CoreException {
+	public void initializePane(ILaunchConfiguration configuration) throws CoreException {
 		try {
 
 			if (LaunchUtils.getRemoteServicesId(configuration) != null) {
@@ -926,7 +924,7 @@
 			//
 			// portalCheck.setSelection(configuration.getAttribute(ITAULaunchConfigurationConstants.PORTAL, false));
 
-			varmap = archvarmap = configuration.getAttribute(ITAULaunchConfigurationConstants.ENVVARS, (Map<String, Object>) null);
+			varmap = archvarmap = configuration.getAttribute(ITAULaunchConfigurationConstants.ENVVARS, (Map<String, String>) null);
 
 			//ETFWUtils.getDefault().getPluginPreferences().setDefault(ITAULaunchConfigurationConstants.TAU_CHECK_AUTO_OPT,true); //$NON-NLS-1$
 
@@ -1204,10 +1202,10 @@
 		 */
 		if (((varmap == null) && (archvarmap != null)) || ((varmap != null) && (archvarmap == null))
 				|| ((varmap != null) && (archvarmap != null) && !varmap.equals(archvarmap))) {
-			Map<String, Object> envvars = null;
+			Map<String, String> envvars = null;
 
 			try {
-				envvars = configuration.getAttribute(ILaunchManager.ATTR_ENVIRONMENT_VARIABLES, (Map<String, Object>) null);
+				envvars = configuration.getAttribute(ILaunchManager.ATTR_ENVIRONMENT_VARIABLES, (Map<String, String>) null);
 			} catch (final CoreException e) {
 				e.printStackTrace();
 			}
@@ -1221,7 +1219,7 @@
 
 			if ((varmap != null) && (varmap.size() > 0)) {
 				if (envvars == null) {
-					envvars = new HashMap<String, Object>();
+					envvars = new HashMap<String, String>();
 				}
 				envvars.putAll(varmap);
 			}
@@ -1377,7 +1375,7 @@
 		configuration.setAttribute(ITAULaunchConfigurationConstants.SELECT, 0);
 		configuration.setAttribute(ITAULaunchConfigurationConstants.SELECT_FILE, ""); //$NON-NLS-1$
 
-		configuration.setAttribute(ITAULaunchConfigurationConstants.ENVVARS, (Map<String, Object>) null);
+		configuration.setAttribute(ITAULaunchConfigurationConstants.ENVVARS, (Map<String, String>) null);
 
 		configuration.setAttribute(ITAULaunchConfigurationConstants.TAU_MAKEFILE, ""); //$NON-NLS-1$
 
diff --git a/tools/etfw/org.eclipse.ptp.etfw.toolopts/pom.xml b/tools/etfw/org.eclipse.ptp.etfw.toolopts/pom.xml
index cbebbda..fff3fd9 100644
--- a/tools/etfw/org.eclipse.ptp.etfw.toolopts/pom.xml
+++ b/tools/etfw/org.eclipse.ptp.etfw.toolopts/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/etfw/org.eclipse.ptp.etfw/META-INF/MANIFEST.MF b/tools/etfw/org.eclipse.ptp.etfw/META-INF/MANIFEST.MF
index 296fcce..8799563 100644
--- a/tools/etfw/org.eclipse.ptp.etfw/META-INF/MANIFEST.MF
+++ b/tools/etfw/org.eclipse.ptp.etfw/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.ptp.etfw;singleton:=true
-Bundle-Version: 7.0.0.qualifier
+Bundle-Version: 7.1.0.qualifier
 Bundle-Activator: org.eclipse.ptp.internal.etfw.Activator
 Bundle-Localization: plugin
 Require-Bundle: org.eclipse.ui,
@@ -14,9 +14,9 @@
  org.eclipse.cdt.launch,
  org.eclipse.ptp.etfw.toolopts,
  org.eclipse.core.filesystem,
- org.eclipse.ptp.remote.core,
+ org.eclipse.remote.core,
  org.eclipse.ptp.core,
- org.eclipse.ptp.remote.ui,
+ org.eclipse.remote.ui,
  org.eclipse.ptp.rdt.sync.core,
  org.eclipse.ui.console,
  org.eclipse.ptp.ems.core,
diff --git a/tools/etfw/org.eclipse.ptp.etfw/pom.xml b/tools/etfw/org.eclipse.ptp.etfw/pom.xml
index 21aac60..876f961 100644
--- a/tools/etfw/org.eclipse.ptp.etfw/pom.xml
+++ b/tools/etfw/org.eclipse.ptp.etfw/pom.xml
@@ -6,11 +6,11 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.etfw</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
+  <version>7.1.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/etfw/PreferenceConstants.java b/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/etfw/PreferenceConstants.java
index 512be2c..0a9d870 100644
--- a/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/etfw/PreferenceConstants.java
+++ b/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/etfw/PreferenceConstants.java
@@ -19,6 +19,10 @@
  */
 public class PreferenceConstants {
 	public static final String ETFW_VERSION = "ETFW_VERSION"; //$NON-NLS-1$
+	/**
+	 * @since 7.1
+	 */
+	public static final String ETFW_WORKFLOW = "ETFW_WORKFLOW"; //$NON-NLS-1$
 
 	/**
 	 * @return the etfw version stored in preferences
@@ -26,4 +30,23 @@
 	public static String getVersion() {
 		return Preferences.getString(Activator.PLUGIN_ID, ETFW_VERSION);
 	}
+
+	/**
+	 * Get the default workflow, or null if no default workflow has been set
+	 * 
+	 * @return default workflow or null
+	 * @since 7.1
+	 */
+	public static String getWorkflow() {
+		return Preferences.getString(Activator.PLUGIN_ID, ETFW_WORKFLOW);
+	}
+
+	/**
+	 * Set the default workflow
+	 * 
+	 * @since 7.1
+	 */
+	public static void setWorkflow(String workflow) {
+		Preferences.setString(Activator.PLUGIN_ID, ETFW_WORKFLOW, workflow);
+	}
 }
diff --git a/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/internal/etfw/ETFWAnalysisTool.java b/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/internal/etfw/ETFWAnalysisTool.java
index 6b7c4ff..3928931 100644
--- a/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/internal/etfw/ETFWAnalysisTool.java
+++ b/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/internal/etfw/ETFWAnalysisTool.java
@@ -147,8 +147,7 @@
 		try {
 			if (root.fetchInfo().exists() && root.fetchInfo().isDirectory()) {
 				filea = root.childStores(EFS.NONE, null);
-			}
-			else {
+			} else {
 				return files;
 			}
 		} catch (final CoreException e) {
@@ -186,8 +185,7 @@
 				/*
 				 * If the tool has no group or the group is, at least, not internal just run with what is defined in the xml
 				 */
-				if (anap.getToolGroup() == null || !anap.getToolGroup().equals(INTERNAL))
-				{
+				if (anap.getToolGroup() == null || !anap.getToolGroup().equals(INTERNAL)) {
 					runTool = getToolCommandList(anap, configuration);
 					if (tool.getForAllLike() != null) {
 						final IFileStore getname = utilBlob.getFile(currentFile);
@@ -207,11 +205,9 @@
 							utilBLob.runVis(runTool, null, outputLocation);
 						} else {
 
-							if (anap.getOutToFile() != null)
-							{
+							if (anap.getOutToFile() != null) {
 								utilBLob.runTool(runTool, null, outputLocation, anap.getOutToFile());
-							}
-							else {
+							} else {
 								byte[] utout = null;
 								final MessageConsole mc = findConsole("ETFw");
 								mc.clearConsole();
@@ -244,7 +240,11 @@
 
 							manager.setExternalTarget(true);
 						} else {
-							projName = thisCProject.getElementName();
+							if (thisProject != null) {
+								projName = thisProject.getName();
+							} else {
+								projName = EMPTY_STRING;
+							}
 						}
 
 						// TODO: This is sort of ok, but we should probably change the API to accept both the output dir and the
@@ -308,8 +308,7 @@
 				 */
 				externalTarget = true;
 			}
-		}
-		else {
+		} else {
 			String customOutLoc = null;
 
 			try {
@@ -318,11 +317,9 @@
 				e1.printStackTrace();
 			}
 
-			if (customOutLoc != null)
-			{
+			if (customOutLoc != null) {
 				outputLocation = customOutLoc;
-			}
-			else if (utilBlob.isRemote()) {
+			} else if (utilBlob.isRemote()) {
 				outputLocation = utilBlob.getWorkingDirectory();
 			}
 		}
diff --git a/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/internal/etfw/ETFWBuildTool.java b/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/internal/etfw/ETFWBuildTool.java
index 8a44697..52f153a 100644
--- a/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/internal/etfw/ETFWBuildTool.java
+++ b/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/internal/etfw/ETFWBuildTool.java
@@ -200,7 +200,7 @@
 			return;
 		}
 
-		buildInfo = ManagedBuildManager.getBuildInfo(thisCProject.getResource());
+		buildInfo = ManagedBuildManager.getBuildInfo(thisProject);
 		olddefbuildconf = buildInfo.getDefaultConfiguration();// TODO: Make sure
 																// default
 																// configuration
@@ -280,7 +280,7 @@
 		// TODO: We have to do this because PTP puts its output in the build
 		// directory
 
-		if (!isSyncProject && configuration.getAttribute(EXTOOL_EXECUTABLE_PATH_TAG, (String) null) != null) {
+		if (configuration.getAttribute(EXTOOL_EXECUTABLE_PATH_TAG, (String) null) != null) {
 			outputLocation = thisProject.getFile(newname).getLocationURI().getPath();// .toOSString();
 		}
 
@@ -396,7 +396,7 @@
 		}
 		// System.out.println(tbpath+File.separator+"tau_xxx.sh"+tauCompilerArgs);
 		if (numChanges > 0) {
-			ManagedBuildManager.saveBuildInfo(thisCProject.getProject(), true);
+			ManagedBuildManager.saveBuildInfo(thisProject, true);
 		}
 
 		return true;
@@ -460,7 +460,7 @@
 		// lastBuilt=pathStore.fetchInfo().getLastModified();
 		// }
 
-		ManagedBuildManager.setDefaultConfiguration(thisCProject.getProject(), newBuildConfig);
+		ManagedBuildManager.setDefaultConfiguration(thisProject, newBuildConfig);
 		try {
 			thisProject.build(IncrementalProjectBuilder.FULL_BUILD, monitor);// .FULL_BUILD
 																				// //.INCREMENTAL_BUILD
@@ -492,7 +492,7 @@
 
 	public void restoreBuild() {
 		if (isManaged) {
-			ManagedBuildManager.setDefaultConfiguration(thisCProject.getProject(), olddefbuildconf);
+			ManagedBuildManager.setDefaultConfiguration(thisProject, olddefbuildconf);
 			// if(!configuration.getAttribute(NOCLEAN,
 			// false)&&managedBuildProj!=null&&newBuildConfig!=null)
 			// managedBuildProj.removeConfiguration(newBuildConfig.getId());
diff --git a/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/internal/etfw/ETFWLaunchTool.java b/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/internal/etfw/ETFWLaunchTool.java
index c31c06c..111fe73 100644
--- a/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/internal/etfw/ETFWLaunchTool.java
+++ b/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/internal/etfw/ETFWLaunchTool.java
@@ -170,17 +170,17 @@
 				testStore = utilBlob.getFile(progPath);
 			}
 
-			IFileStore progStore = utilBlob.getFile(projectLocation);
 			boolean progStoreGood = false;
-			if (progStore.fetchInfo().exists() && progPath != null) {
-				progStore = progStore.getChild(progPath);
-				if (progStore.fetchInfo().exists()) {
-					progStoreGood = true;
+			IFileStore progStore = null;
+			if (projectLocation != null) {
+				progStore = utilBlob.getFile(projectLocation);
+				if (progStore.fetchInfo().exists() && progPath != null) {
+					progStore = progStore.getChild(progPath);
+					if (progStore.fetchInfo().exists()) {
+						progStoreGood = true;
+					}
 				}
 			}
-			else {
-				progStore = null;
-			}
 
 			if ((testStore != null && testStore.fetchInfo().exists() && !testStore.fetchInfo().isDirectory()) || progStoreGood) {
 				if (apppathattrib != null) {
@@ -203,19 +203,10 @@
 				if (testStore.fetchInfo().exists() && !testStore.fetchInfo().isDirectory()) {
 					confWC.setAttribute(apppathattrib, testStore.toURI().getPath());
 					confWC.setAttribute(appnameattrib, testStore.getName());
-				}
-				else {
+				} else { // progStoreGood
 					confWC.setAttribute(appnameattrib, progPath);
 					if (apppathattrib != null) {
-						// String path=null;
-						if (isSyncProject)
-						{
-							path = progStore.toURI().getPath();// outputLocation;
-						}
-						else
-						{
-							path = thisProject.getFile(progPath).getLocationURI().getPath();
-						}
+						path = progStore.toURI().getPath();// outputLocation;
 						// savePath = confWC.getAttribute(apppathattrib, (String) null);
 						confWC.setAttribute(apppathattrib, path);
 					}
diff --git a/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/internal/etfw/ETFWToolStep.java b/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/internal/etfw/ETFWToolStep.java
index 1f672d3..42201e9 100644
--- a/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/internal/etfw/ETFWToolStep.java
+++ b/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/internal/etfw/ETFWToolStep.java
@@ -17,8 +17,6 @@
 import java.util.Map;
 import java.util.Map.Entry;
 
-import org.eclipse.cdt.core.CCorePlugin;
-import org.eclipse.cdt.core.model.ICProject;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
@@ -32,8 +30,8 @@
 import org.eclipse.ptp.internal.etfw.jaxb.data.ToolIOType;
 import org.eclipse.ptp.internal.etfw.jaxb.util.ToolAppTypeUtil;
 import org.eclipse.ptp.internal.etfw.messages.Messages;
-import org.eclipse.ptp.rdt.sync.core.SyncConfigManager;
 import org.eclipse.ptp.rdt.sync.core.resources.RemoteSyncNature;
+import org.eclipse.remote.core.IRemoteResource;
 
 /**
  * This is a re-implementation of ToolStep specifically for the ETFw JAXB workflow. It Manages the process of building instrumented
@@ -46,37 +44,6 @@
  */
 public abstract class ETFWToolStep extends Job implements IToolLaunchConfigurationConstants {
 
-	// private IConfiguration olddefbuildconf=null;
-
-	// private boolean useTau=false;
-
-	// /**
-	// * The name of the original application in the launch configuration
-	// */
-	// private String application = null;
-	//
-	//
-	//
-	//
-	//
-	// private String saveApp=null;
-	// private String saveArgs=null;
-	// private boolean swappedArgs=false;
-
-	// /**
-	// * False implies that no execution is to take place (either because of an
-	// error, or user request)
-	// * */
-	// private boolean runbuilt=false;
-	//
-	// //=null;//ETFWUtils.getTool();// .tools[0].toolPanes[0];;
-	//
-	// /** Executable (application) attribute name */
-	// private String appnameattrib=null;
-	// /** Executable (application) path attribute name */
-	// private String apppathattrib=null;
-	//
-
 	/**
 	 * Gets the project associated with the launch configuration held by this
 	 * manager
@@ -104,78 +71,35 @@
 	protected String projectBinary = null;
 
 	protected String projectName = null;
-	protected ICProject thisCProject = null;
 	protected IProject thisProject = null;
-	// protected String outputLocation=null;
 	protected ILaunchConfiguration configuration = null;
-	// protected final ExternalToolProcess tool;
 	protected Map<String, String> IOMap = null;
 	protected boolean isSyncProject = false;
 
-	IBuildLaunchUtils utilBlob = null;
-
-	//
-	// /**
-	// * Creates a new LaunchManage object with the information necessary to
-	// instrument a program for performance analysis
-	// * @param conf The Launch configuration being adjusted for performance
-	// analysis
-	// * @param ana The application name attribute used by the underlying launch
-	// configuration delegate (differs between CDT and PTP)
-	// * @param projnameattrib The project name attribute used by the underlying
-	// launch configuration delegate (differs between CDT and PTP)
-	// * @throws CoreException
-	// */
-	// public ToolStep(ILaunchConfiguration conf, String ana, String
-	// projnameattrib, String apa, String progPath, String outLoc) throws
-	// CoreException{//, TAULaunch tool
-	//
-	// super("Performance Analysis");
-	//
-	// appnameattrib=ana;
-	// apppathattrib=apa;
-	// configuration=conf;
-	// //this.progPath=progPath;
-	// //useTau=configuration.getAttribute(TAULAUNCH, false);
-	// thisProject = getProject(projnameattrib, configuration);
-	// thisCProject =
-	// CCorePlugin.getDefault().getCoreModel().create(thisProject);
-	// projectLocation=thisCProject.getResource().getLocation().toOSString();
-	// if(outputLocation==null){
-	// outputLocation=projectLocation;
-	// }
-	// else{
-	// outputLocation=outLoc;
-	// }
-	//
-	//
-	// IOMap=new HashMap<String, String>();
-	//
-	// }
+	protected IBuildLaunchUtils utilBlob = null;
 
 	protected ETFWToolStep(ILaunchConfiguration conf, String name, IBuildLaunchUtils utilBlob) throws CoreException {
 		super(name);
 		configuration = conf;
 
 		thisProject = getProject(configuration);
-		thisCProject = CCorePlugin.getDefault().getCoreModel().create(thisProject);
 
-		isSyncProject = RemoteSyncNature.hasNature(thisProject);// BuildConfigurationManager.getInstance().isInitialized(thisProject);
+		if (thisProject != null) {
+			IRemoteResource remoteResource = (IRemoteResource) thisProject.getAdapter(IRemoteResource.class);
+			if (remoteResource != null) {
+				isSyncProject = RemoteSyncNature.hasNature(thisProject);
+				projectLocation = remoteResource.getActiveLocationURI().getPath();
+			} else {
+				projectLocation = thisProject.getLocationURI().getPath();
+			}
 
-		if (isSyncProject) {
-			projectLocation = SyncConfigManager.getActive(thisProject).getLocation();
-		} else {
-			projectLocation = thisCProject.getResource().getLocationURI().getPath();
+			outputLocation = projectLocation;
 		}
 
-		outputLocation = projectLocation;
-
 		projectBinary = Messages.ToolStep_Unknown;
 		projectName = Messages.ToolStep_Unknown;
 		this.utilBlob = utilBlob;
 		IOMap = new HashMap<String, String>();
-		// this.tool=ETFWUtils.getTool(configuration.getAttribute(SELECTED_TOOL,
-		// (String)null));
 	}
 
 	private String createOutputPath(ToolIOType toolArg) {
@@ -195,30 +119,6 @@
 		return configuration;
 	}
 
-	// boolean isManagedProject(IProject prj) {
-	// if(prj==null)
-	// return false;
-	// ICProjectDescription prjd
-	// =CoreModel.getDefault().getProjectDescription(prj, false);
-	// if(prjd==null)
-	// return false;
-	// IConfiguration
-	// cfg=ManagedBuildManager.getConfigurationForDescription(prjd.getDefaultSettingConfiguration());
-	// return ( cfg.getBuilder().isManagedBuildOn() );
-	// }
-
-	// private boolean doclean = true;
-	//
-	// public void setDoClean(boolean doit){
-	// doclean=doit;
-	// }
-
-	// protected String getToolArguments(ToolApp app, ILaunchConfiguration
-	// configuration) throws CoreException
-	// {
-	// return getToolArguments(app,configuration,"");
-	// }
-
 	protected List<String> getToolArgumentList(ToolAppType app, ILaunchConfiguration configuration) throws CoreException {
 		if (app == null) {
 			return null;
@@ -328,9 +228,9 @@
 	 * @return
 	 */
 	protected String getToolExecutable(ToolAppType app) {
-		String command = app.getToolCommand();// .toolCommand;
+		String command = app.getToolCommand();
 
-		String toolPath = utilBlob.getToolPath(app.getToolGroup());// app.toolGroup); // checkToolEnvPath(app.toolCommand);
+		String toolPath = utilBlob.getToolPath(app.getToolGroup());
 		if (toolPath == null || toolPath.length() == 0) {
 			toolPath = utilBlob.checkToolEnvPath(command);
 		}
@@ -355,13 +255,8 @@
 
 	private String parseInput(ToolAppType app) {
 		String input = ""; //$NON-NLS-1$
-		//			String oneIn = ""; //$NON-NLS-1$
 		if (app.getInputArgs() != null) {
 			for (final ToolIOType inputArg : app.getInputArgs()) {
-				// for (int i = 0; i < app.inputArgs.length; i++) {
-				//					oneIn = ""; //$NON-NLS-1$
-				// if (app.inputArgs[i].pathFlag != null)
-				//						oneIn += app.inputArgs[i].pathFlag + " "; //$NON-NLS-1$
 				if (IOMap.containsKey(inputArg.getId())) {
 					input += IOMap.get(inputArg.getId());
 					/*
@@ -371,22 +266,11 @@
 				} else {
 					return ""; //$NON-NLS-1$
 				}
-				/*
-				 * 
-				 */
-				// if(app.inputArgs[i].)
-
 			}
 		}
 		return input;
 	}
 
-	// protected String getToolCommand(ToolApp app, ILaunchConfiguration
-	// configuration) throws CoreException
-	// {
-	// return getToolCommand(app,configuration,"");
-	// }
-
 	private String parseOutput(ToolAppType app) {
 		String output = ""; //$NON-NLS-1$
 
@@ -409,11 +293,6 @@
 				} else {
 					output += createOutputPath(outputArg);
 				}
-				/*
-					 * 
-					 */
-				// if(app.inputArgs[i].)
-
 			}
 		}
 
diff --git a/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/internal/etfw/ParametricToolLaunchManager.java b/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/internal/etfw/ParametricToolLaunchManager.java
index 17e1728..55079c7 100644
--- a/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/internal/etfw/ParametricToolLaunchManager.java
+++ b/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/internal/etfw/ParametricToolLaunchManager.java
@@ -357,18 +357,15 @@
 	public static String getTauMetadata(Map<String, String> build, RunParams par) {
 		String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<tau:metadata xmlns:tau=\"http://www.cs.uoregon.edu/research/tau\">\n<tau:CommonProfileAttributes>"; //$NON-NLS-1$
 
-		if (build != null)
-		{
+		if (build != null) {
 			xml += makeTauAtts(build, "BUILD:"); //$NON-NLS-1$
 		}
 
-		if (par.args != null)
-		{
+		if (par.args != null) {
 			xml += makeTauAtt("ApplicationArguments", par.args); //$NON-NLS-1$
 		}
 
-		if (par.vars != null)
-		{
+		if (par.vars != null) {
 			xml += makeTauAtts(par.vars, "ENV:"); //$NON-NLS-1$
 		}
 
@@ -494,8 +491,7 @@
 		};
 
 		final ExternalToolProcess pproc = ETFWUtils.getTool(configuration.getAttribute(
-				IToolLaunchConfigurationConstants.SELECTED_TOOL,
-				(String) null));
+				IToolLaunchConfigurationConstants.SELECTED_TOOL, (String) null));
 		// paraDel=lcd;
 		// this.lf=lf;
 		// here is where the loop(s) for the parametric study should go - for
@@ -589,8 +585,7 @@
 		System.out.println(params.size());
 		for (final RunParams param : params) {
 			System.out.println("Num Processors: " + param.numProcs); //$NON-NLS-1$
-			if (param.args != null)
-			{
+			if (param.args != null) {
 				System.out.println("Program args: " + param.args); //$NON-NLS-1$
 			}
 			System.out.println("Env args: "); //$NON-NLS-1$
@@ -705,10 +700,10 @@
 
 				/* Set up environment variables for this run */
 				if (param.vars != null) {
-					Map<String, Object> envvars = null;
-					envvars = wc.getAttribute(ILaunchManager.ATTR_ENVIRONMENT_VARIABLES, (Map<String, Object>) null);
+					Map<String, String> envvars = null;
+					envvars = wc.getAttribute(ILaunchManager.ATTR_ENVIRONMENT_VARIABLES, (Map<String, String>) null);
 					if (envvars == null) {
-						envvars = new HashMap<String, Object>();
+						envvars = new HashMap<String, String>();
 					}
 					envvars.putAll(param.vars);
 					wc.setAttribute(ILaunchManager.ATTR_ENVIRONMENT_VARIABLES, envvars);
diff --git a/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/internal/etfw/RemoteBuildLaunchUtils.java b/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/internal/etfw/RemoteBuildLaunchUtils.java
index 4f5de6c..e32af00 100644
--- a/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/internal/etfw/RemoteBuildLaunchUtils.java
+++ b/tools/etfw/org.eclipse.ptp.etfw/src/org/eclipse/ptp/internal/etfw/RemoteBuildLaunchUtils.java
@@ -48,17 +48,17 @@
 import org.eclipse.ptp.etfw.toolopts.ExternalToolProcess;
 import org.eclipse.ptp.internal.etfw.jaxb.ETFWCoreConstants;
 import org.eclipse.ptp.internal.etfw.messages.Messages;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteConnectionManager;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.core.IRemoteProcess;
-import org.eclipse.ptp.remote.core.IRemoteProcessBuilder;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
-import org.eclipse.ptp.remote.ui.IRemoteUIFileManager;
-import org.eclipse.ptp.remote.ui.IRemoteUIServices;
-import org.eclipse.ptp.remote.ui.RemoteUIServices;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnectionManager;
+import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteProcess;
+import org.eclipse.remote.core.IRemoteProcessBuilder;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.RemoteServices;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
+import org.eclipse.remote.ui.IRemoteUIFileManager;
+import org.eclipse.remote.ui.IRemoteUIServices;
+import org.eclipse.remote.ui.RemoteUIServices;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.PlatformUI;
 
@@ -139,7 +139,7 @@
 		conn = connMgr.getConnection(LaunchUtils.getConnectionName(config));
 		fileManagerUI = remoteUIServices.getUIFileManager();
 		fileManagerUI.setConnection(conn);
-		fileManager = remoteServices.getFileManager(conn);
+		fileManager = conn.getFileManager();
 		envMgrConfig = getEnvManagerConfig(config);
 		if (envMgrConfig != null) {
 			envManager = EnvManagerRegistry.getEnvManager(null, conn);
@@ -152,7 +152,7 @@
 
 		// this.selshell=PlatformUI.getWorkbench().getDisplay().getActiveShell();
 	}
-	
+
 	/**
 	 * 
 	 * @return the ILaunchConfiguration set in this object or null if not set
@@ -162,23 +162,25 @@
 	}
 
 	/**
-	 * Sets the ILaunchConfiguration object to be used by the remote connection utility functions provided if not already set, otherwise does nothing.
-	 * @param config 
+	 * Sets the ILaunchConfiguration object to be used by the remote connection utility functions provided if not already set,
+	 * otherwise does nothing.
+	 * 
+	 * @param config
 	 */
 	public void setConfig(ILaunchConfiguration config) {
-		//if(this.config==null && config!=null){
+		// if(this.config==null && config!=null){
 		this.config = config;
 		envMgrConfig = getEnvManagerConfig(config);
 		if (envMgrConfig != null) {
 			envManager = EnvManagerRegistry.getEnvManager(null, conn);
-			//System.out.println(envManager);
+			// System.out.println(envManager);
 			// if (envManager != null) {
 			// //moduleSetup = envManager.getBashConcatenation(";", false, envMgrConfig, null);
 			// moduleSetup = envManager.createBashScript(null, false, config, commandToExecuteAfterward)
 			//
 			// }
 		}
-		//}
+		// }
 	}
 
 	public RemoteBuildLaunchUtils(IRemoteConnection conn) {
@@ -188,7 +190,7 @@
 		connMgr = remoteServices.getConnectionManager();
 		// conn = connMgr.getConnection(LaunchUtils.getConnectionName(config));
 		fileManagerUI = remoteUIServices.getUIFileManager();
-		fileManager = remoteServices.getFileManager(conn);
+		fileManager = conn.getFileManager();
 
 		// Can we get the envManager from the connection if we need it?
 		// envManager = null;
@@ -242,10 +244,10 @@
 		}
 		String pPath = null;
 		try {
-			final IRemoteProcessBuilder rpb = remoteServices.getProcessBuilder(conn);
+			final IRemoteProcessBuilder rpb = conn.getProcessBuilder();
 			if (envManager != null) {
 				String com = EMPTY_STRING;
-				
+
 				try {
 					com = envManager.createBashScript(null, false, envMgrConfig, "which " + toolname); //$NON-NLS-1$
 					final IFileStore envScript = fileManager.getResource(com);
@@ -262,7 +264,7 @@
 					e.printStackTrace();
 				}
 				rpb.command(com);
-				
+
 			} else {
 				rpb.command("which", toolname);//$NON-NLS-1$
 			}
@@ -410,14 +412,13 @@
 	private IEnvManagerConfig getEnvManagerConfig(ILaunchConfiguration configuration) {
 		try {
 			String emsConfigAttr = configuration.getAttribute(IPTPLaunchConfigurationConstants.ATTR_EMS_CONFIG, (String) null);
-			if(emsConfigAttr==null)
-			{
-				String moduleLine=configuration.getAttribute(ETFWCoreConstants.RM_NAME, (String) null);
-				if(moduleLine!=null){
-					emsConfigAttr = configuration.getAttribute(moduleLine+".modules", (String) null);
+			if (emsConfigAttr == null) {
+				String moduleLine = configuration.getAttribute(ETFWCoreConstants.RM_NAME, (String) null);
+				if (moduleLine != null) {
+					emsConfigAttr = configuration.getAttribute(moduleLine + ".modules", (String) null);
 				}
 			}
-			
+
 			if (emsConfigAttr != null) {
 				final EnvManagerConfigString config = new EnvManagerConfigString(emsConfigAttr);
 				if (config.isEnvMgmtEnabled()) {
@@ -449,12 +450,11 @@
 				com = envManager.createBashScript(null, false, envMgrConfig, concat);
 				final IFileStore envScript = fileManager.getResource(com);
 				final IFileInfo envInfo = envScript.fetchInfo();
-				
-				envInfo.setAttribute(EFS.ATTRIBUTE_EXECUTABLE,true);
-				
+
+				envInfo.setAttribute(EFS.ATTRIBUTE_EXECUTABLE, true);
+
 				envInfo.setAttribute(EFS.ATTRIBUTE_OWNER_EXECUTE, true);
-					
-				
+
 				envScript.putInfo(envInfo, EFS.SET_ATTRIBUTES, null);
 
 			} catch (final RemoteConnectionException e) {
@@ -463,9 +463,9 @@
 			} catch (final CoreException e) {
 				e.printStackTrace();
 			}
-			pb = remoteServices.getProcessBuilder(conn, com);
+			pb = conn.getProcessBuilder(com);
 		} else {
-			pb = remoteServices.getProcessBuilder(conn, tool);// new IRemoteProcessBuilder(tool);
+			pb = conn.getProcessBuilder(tool);// new IRemoteProcessBuilder(tool);
 		}
 		if (directory != null) {
 			pb.directory(fileManager.getResource(directory));
diff --git a/tools/gem/org.eclipse.ptp.gem.help/pom.xml b/tools/gem/org.eclipse.ptp.gem.help/pom.xml
index d71ac84..afdb2bf 100644
--- a/tools/gem/org.eclipse.ptp.gem.help/pom.xml
+++ b/tools/gem/org.eclipse.ptp.gem.help/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/gem/org.eclipse.ptp.gem/META-INF/MANIFEST.MF b/tools/gem/org.eclipse.ptp.gem/META-INF/MANIFEST.MF
index ebccbb8..c0f3d70 100644
--- a/tools/gem/org.eclipse.ptp.gem/META-INF/MANIFEST.MF
+++ b/tools/gem/org.eclipse.ptp.gem/META-INF/MANIFEST.MF
@@ -18,8 +18,8 @@
  org.eclipse.ptp.rdt.core.resources,
  org.eclipse.ptp.rdt.sync.core,
  org.eclipse.ptp.rdt.sync.core.resources,
- org.eclipse.ptp.remote.core,
- org.eclipse.ptp.remote.core.exception
+ org.eclipse.remote.core,
+ org.eclipse.remote.core.exception
 Export-Package: org.eclipse.ptp.internal.gem;x-internal:=true,
  org.eclipse.ptp.internal.gem.handlers;x-internal:=true,
  org.eclipse.ptp.internal.gem.messages;x-internal:=true,
diff --git a/tools/gem/org.eclipse.ptp.gem/plugin.properties b/tools/gem/org.eclipse.ptp.gem/plugin.properties
index 32eba9a..c276472 100644
--- a/tools/gem/org.eclipse.ptp.gem/plugin.properties
+++ b/tools/gem/org.eclipse.ptp.gem/plugin.properties
@@ -15,4 +15,5 @@
  *******************************************************************************/
  
  pluginName=GEM - Dynamic Formal Verification for MPI C/C++ Programs
- pluginProvider=Eclipse PTP
\ No newline at end of file
+ pluginProvider=Eclipse PTP
+ menulabel=PTP GEM - Graphical Explorer of MPI Programs
\ No newline at end of file
diff --git a/tools/gem/org.eclipse.ptp.gem/plugin.xml b/tools/gem/org.eclipse.ptp.gem/plugin.xml
index 2fb15f3..8fc7f83 100644
--- a/tools/gem/org.eclipse.ptp.gem/plugin.xml
+++ b/tools/gem/org.eclipse.ptp.gem/plugin.xml
@@ -236,7 +236,8 @@
    		point="org.eclipse.ui.menus">
       <menuContribution
       		locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions">
-         <toolbar id="org.eclipse.ptp.gem.toolbar">
+         <toolbar id="org.eclipse.ptp.gem.toolbar"
+                  label="%menulabel">
              <command
                   commandId="org.eclipse.ptp.gem.commands.gemCommand"
                   icon="icons/trident.gif"
diff --git a/tools/gem/org.eclipse.ptp.gem/pom.xml b/tools/gem/org.eclipse.ptp.gem/pom.xml
index a7111ee..a4f6ba1 100644
--- a/tools/gem/org.eclipse.ptp.gem/pom.xml
+++ b/tools/gem/org.eclipse.ptp.gem/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/gem/org.eclipse.ptp.gem/src/org/eclipse/ptp/internal/gem/util/GemUtilities.java b/tools/gem/org.eclipse.ptp.gem/src/org/eclipse/ptp/internal/gem/util/GemUtilities.java
index 15cffda..5f4607b 100644
--- a/tools/gem/org.eclipse.ptp.gem/src/org/eclipse/ptp/internal/gem/util/GemUtilities.java
+++ b/tools/gem/org.eclipse.ptp.gem/src/org/eclipse/ptp/internal/gem/util/GemUtilities.java
@@ -60,13 +60,13 @@
 import org.eclipse.ptp.rdt.sync.core.SyncFlag;
 import org.eclipse.ptp.rdt.sync.core.SyncManager;
 import org.eclipse.ptp.rdt.sync.core.resources.RemoteSyncNature;
-import org.eclipse.ptp.remote.core.IRemoteConnection;
-import org.eclipse.ptp.remote.core.IRemoteFileManager;
-import org.eclipse.ptp.remote.core.IRemoteProcess;
-import org.eclipse.ptp.remote.core.IRemoteProcessBuilder;
-import org.eclipse.ptp.remote.core.IRemoteServices;
-import org.eclipse.ptp.remote.core.RemoteServices;
-import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
+import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteProcess;
+import org.eclipse.remote.core.IRemoteProcessBuilder;
+import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.RemoteServices;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.IViewPart;
@@ -564,7 +564,7 @@
 		final IRemoteServices services = RemoteServices.getRemoteServices(projectURI);
 		services.initialize(null);
 		final IRemoteConnection connection = services.getConnectionManager().getConnection(projectURI);
-		final IRemoteFileManager manager = services.getFileManager(connection);
+		final IRemoteFileManager manager = connection.getFileManager();
 
 		return manager;
 	}
@@ -596,7 +596,7 @@
 		final IRemoteServices services = RemoteServices.getRemoteServices(projectURI);
 		services.initialize(null);
 		final IRemoteConnection connection = getRemoteConnection(services, projectURI);
-		final IRemoteProcessBuilder rpb = services.getProcessBuilder(connection, args);
+		final IRemoteProcessBuilder rpb = connection.getProcessBuilder(args);
 
 		return rpb;
 	}
diff --git a/tools/pldt/org.eclipse.ptp.pldt.common/plugin.properties b/tools/pldt/org.eclipse.ptp.pldt.common/plugin.properties
index f45dda2..37bd14d 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.common/plugin.properties
+++ b/tools/pldt/org.eclipse.ptp.pldt.common/plugin.properties
@@ -14,4 +14,5 @@
 command.tooltip = Repeat last Parallel Analysis 
 category.name = Analysis Dropdown Category
 command.name = Analysis dropdown menu
-commandParameter.name = Message
\ No newline at end of file
+commandParameter.name = Message
+menulabel=PTP PLDT analysis
\ No newline at end of file
diff --git a/tools/pldt/org.eclipse.ptp.pldt.common/plugin.xml b/tools/pldt/org.eclipse.ptp.pldt.common/plugin.xml
index 9e99e57..6fa0d55 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.common/plugin.xml
+++ b/tools/pldt/org.eclipse.ptp.pldt.common/plugin.xml
@@ -29,12 +29,17 @@
          <commandParameter
                id="org.eclipse.ptp.pldt.common.dropDownCommand.msg"
                name="%commandParameter.name"
-               optional="true"
-               typeId="String">
+               optional="true">
          </commandParameter>
+         <!--
          <defaultHandler
                class="org.eclipse.ptp.pldt.common.actions.AnalysisDropdownHandler">
+            <parameter
+                  name="org.eclipse.ptp.pldt.common.parameter1"
+                  value="test">
+            </parameter>
          </defaultHandler>
+         -->
       </command>
    </extension>
    <extension
@@ -49,6 +54,7 @@
       <menuContribution
             locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions">
          <toolbar
+               label="%menulabel"
                id="org.eclipse.ptp.pldt.common.toolbar1">
             <command
                   commandId="org.eclipse.ptp.pldt.common.dropDownCommand"
diff --git a/tools/pldt/org.eclipse.ptp.pldt.common/pom.xml b/tools/pldt/org.eclipse.ptp.pldt.common/pom.xml
index 714b5db..921d980 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.common/pom.xml
+++ b/tools/pldt/org.eclipse.ptp.pldt.common/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/pldt/org.eclipse.ptp.pldt.common/src/org/eclipse/ptp/pldt/common/actions/AnalysisDropdownHandler.java b/tools/pldt/org.eclipse.ptp.pldt.common/src/org/eclipse/ptp/pldt/common/actions/AnalysisDropdownHandler.java
index 8df7fe0..ab986b2 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.common/src/org/eclipse/ptp/pldt/common/actions/AnalysisDropdownHandler.java
+++ b/tools/pldt/org.eclipse.ptp.pldt.common/src/org/eclipse/ptp/pldt/common/actions/AnalysisDropdownHandler.java
@@ -71,7 +71,8 @@
 			// if ss not set how are we notified of later selection changes??? BRT
 			if (ww != null) {
 				ss = ww.getSelectionService(); // throws on this
-				System.out.println("ss=" + ss);
+				if(traceOn)
+					System.out.println("ADDH ... ss=" + ss);
 				ss.addSelectionListener(this);
 				// and cache the selection that was in effect now.
 				// gives selection in ACTIVE PART. If editor was just opened, active part is probably the editor.
diff --git a/tools/pldt/org.eclipse.ptp.pldt.doc.user/pom.xml b/tools/pldt/org.eclipse.ptp.pldt.doc.user/pom.xml
index bf5de14..2ae2db8 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.doc.user/pom.xml
+++ b/tools/pldt/org.eclipse.ptp.pldt.doc.user/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/pldt/org.eclipse.ptp.pldt.mpi.analysis.cdt/pom.xml b/tools/pldt/org.eclipse.ptp.pldt.mpi.analysis.cdt/pom.xml
index f65c0ce..e035c7d 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.mpi.analysis.cdt/pom.xml
+++ b/tools/pldt/org.eclipse.ptp.pldt.mpi.analysis.cdt/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/pldt/org.eclipse.ptp.pldt.mpi.analysis/pom.xml b/tools/pldt/org.eclipse.ptp.pldt.mpi.analysis/pom.xml
index f250967..a466076 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.mpi.analysis/pom.xml
+++ b/tools/pldt/org.eclipse.ptp.pldt.mpi.analysis/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/pldt/org.eclipse.ptp.pldt.mpi.core/pom.xml b/tools/pldt/org.eclipse.ptp.pldt.mpi.core/pom.xml
index 65d2e16..7e5dc40 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.mpi.core/pom.xml
+++ b/tools/pldt/org.eclipse.ptp.pldt.mpi.core/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/pldt/org.eclipse.ptp.pldt.mpi.fortran/pom.xml b/tools/pldt/org.eclipse.ptp.pldt.mpi.fortran/pom.xml
index 2880a1d..357c6d1 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.mpi.fortran/pom.xml
+++ b/tools/pldt/org.eclipse.ptp.pldt.mpi.fortran/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/pldt/org.eclipse.ptp.pldt.openacc.fortran/pom.xml b/tools/pldt/org.eclipse.ptp.pldt.openacc.fortran/pom.xml
index 2a31f2e..08a2fdb 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.openacc.fortran/pom.xml
+++ b/tools/pldt/org.eclipse.ptp.pldt.openacc.fortran/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/pldt/org.eclipse.ptp.pldt.openacc/pom.xml b/tools/pldt/org.eclipse.ptp.pldt.openacc/pom.xml
index 12131a5..9cc9fe3 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.openacc/pom.xml
+++ b/tools/pldt/org.eclipse.ptp.pldt.openacc/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/pldt/org.eclipse.ptp.pldt.openmp.analysis/pom.xml b/tools/pldt/org.eclipse.ptp.pldt.openmp.analysis/pom.xml
index 788cd66..f9d782e 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.openmp.analysis/pom.xml
+++ b/tools/pldt/org.eclipse.ptp.pldt.openmp.analysis/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/pldt/org.eclipse.ptp.pldt.openmp.core/pom.xml b/tools/pldt/org.eclipse.ptp.pldt.openmp.core/pom.xml
index 062b04e..0f4a045 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.openmp.core/pom.xml
+++ b/tools/pldt/org.eclipse.ptp.pldt.openmp.core/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/pldt/org.eclipse.ptp.pldt.openmp.fortran/pom.xml b/tools/pldt/org.eclipse.ptp.pldt.openmp.fortran/pom.xml
index cb86468..7ba90d7 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.openmp.fortran/pom.xml
+++ b/tools/pldt/org.eclipse.ptp.pldt.openmp.fortran/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/pldt/org.eclipse.ptp.pldt.openmp.ui.pv/pom.xml b/tools/pldt/org.eclipse.ptp.pldt.openmp.ui.pv/pom.xml
index de1cf43..68771cd 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.openmp.ui.pv/pom.xml
+++ b/tools/pldt/org.eclipse.ptp.pldt.openmp.ui.pv/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/pldt/org.eclipse.ptp.pldt.openshmem/pom.xml b/tools/pldt/org.eclipse.ptp.pldt.openshmem/pom.xml
index cb08804..6e9c85f 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.openshmem/pom.xml
+++ b/tools/pldt/org.eclipse.ptp.pldt.openshmem/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/id_MYTHREAD.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/id_MYTHREAD.html
index 367221c..4c7cac1 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/id_MYTHREAD.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/id_MYTHREAD.html
@@ -17,7 +17,7 @@
 </pre>
 <p>See also <a href="id_THREADS.html"><code>THREADS</code></a>,
 
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/id_THREADS.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/id_THREADS.html
index 9a00383..82625c4 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/id_THREADS.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/id_THREADS.html
@@ -9,7 +9,7 @@
 #if preprocessing directives.
 
 
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/id_UPC_MAX_BLOCK_SIZE.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/id_UPC_MAX_BLOCK_SIZE.html
index f51f59c..16805b6 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/id_UPC_MAX_BLOCK_SIZE.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/id_UPC_MAX_BLOCK_SIZE.html
@@ -7,7 +7,7 @@
 maximum value allowed in a layout qualifier for shared data. It shall be
 suitable for use in <code>#if</code> preprocessing directives.
 
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/keywords.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/keywords.html
index 1e21ac3..6f88ff9 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/keywords.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/keywords.html
@@ -19,7 +19,7 @@
 </code>
 
 
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/shared.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/shared.html
index f5fe38d..b889f97 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/shared.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/shared.html
@@ -12,7 +12,7 @@
 </pre>
 
 
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/terms.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/terms.html
index abfa250..2830692 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/terms.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/terms.html
@@ -85,7 +85,7 @@
 the element-offset within an affinity block; used in pointer-to-shared
 arithmetic to determine affinity boundaries</dd>
 </dl>
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="#top">Back to  top</a>
 <p><a href="index.html">Back to index of all UPC functions</a>
\ No newline at end of file
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_addrfield.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_addrfield.html
index b4133e68..20741eb 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_addrfield.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_addrfield.html
@@ -13,7 +13,7 @@
 argument.
 
 
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_affinitysize.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_affinitysize.html
index de6b81f..9b6d5f3 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_affinitysize.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_affinitysize.html
@@ -25,7 +25,7 @@
 <p><code>threadid</code> shall be a value in <code>0..(THREADS-1)</code>.
 
 
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_alloc.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_alloc.html
index 4cb0943..91e212d 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_alloc.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_alloc.html
@@ -22,7 +22,7 @@
 completes the call to <code>upc_all_alloc   </code> until any thread has deallocated the
 object.
 
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_broadcast.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_broadcast.html
index a34903c..dfd9b4e 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_broadcast.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_broadcast.html
@@ -71,7 +71,7 @@
 upc_barrier;
 </pre>
 </ul>
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_exchange.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_exchange.html
index ac50338..0323de4 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_exchange.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_exchange.html
@@ -66,7 +66,7 @@
                   UPC_IN_ALLSYNC | UPC_OUT_ALLSYNC );
 </pre>
 </ul>
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_gather.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_gather.html
index e5e55ca..007a2c1 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_gather.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_gather.html
@@ -62,6 +62,6 @@
 <li>
 <li>
 </ul>
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br><p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_gather_all.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_gather_all.html
index 4e3199e..e3ba91c 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_gather_all.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_gather_all.html
@@ -68,7 +68,7 @@
 <li>
 <li>
 </ul>
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_lock_alloc.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_lock_alloc.html
index 8262913..40a7ab9 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_lock_alloc.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_lock_alloc.html
@@ -15,7 +15,7 @@
 <p>The <code>upc_all_lock_alloc</code>  function is  a <i>collective</i> function. 
 The return value on every
 thread points to the same lock object.
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_permute.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_permute.html
index 86b93b4..b69e4dc 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_permute.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_permute.html
@@ -51,7 +51,7 @@
 
  
 </ul>
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_scatter.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_scatter.html
index 5b21e92..0b3eb5c 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_scatter.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_all_scatter.html
@@ -70,7 +70,7 @@
 </pre>
  
 </ul>
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_alloc.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_alloc.html
index 9f94bb0..5c80cbb 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_alloc.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_alloc.html
@@ -16,7 +16,7 @@
 value. It is not a <i>collective</i> function. If <code>nbytes</code> is zero, the result is a null
 pointer-to-shared.
 
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_free.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_free.html
index 1dbf679..c9dd523 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_free.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_free.html
@@ -21,7 +21,7 @@
 to <code>upc_free</code>,
 the behavior is undefined.
 
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_global_alloc.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_global_alloc.html
index 8373525..ea047b2 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_global_alloc.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_global_alloc.html
@@ -20,7 +20,7 @@
 multiple threads, all threads which make the call get different allocations. If
 <code>nblocks*nbytes</code> is zero, the result is a null pointer-to-shared.
 
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_global_exit.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_global_exit.html
index 4b2f998..0c99176 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_global_exit.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_global_exit.html
@@ -11,8 +11,8 @@
 flushes all I/O, releases all storage, and terminates the
 execution for all active threads.
 
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
 
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_global_lock_alloc.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_global_lock_alloc.html
index e4e35ff..1780b08 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_global_lock_alloc.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_global_lock_alloc.html
@@ -16,7 +16,7 @@
 <p>The <code>upc_global_lock_alloc </code> function is not a <i>collective</i> function.  If called
 by multiple threads, all threads which make the call get different allocations.
 
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_local_alloc.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_local_alloc.html
index 5247a1a..3eefe22 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_local_alloc.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_local_alloc.html
@@ -23,7 +23,7 @@
 <code>upc_local_alloc </code> is similar to malloc() except that it returns a pointer-to-shared
 value. It is not a <i>collective</i> function.
 
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_lock.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_lock.html
index b10919e..1a582c5 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_lock.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_lock.html
@@ -21,7 +21,7 @@
 locked and the function returns.
 <p>A null strict access is implied after a call to upc_lock().
 
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_lock_attempt.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_lock_attempt.html
index 7f92a9b..9cf5d96 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_lock_attempt.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_lock_attempt.html
@@ -22,7 +22,7 @@
 <p>A null strict access is implied after a call to upc_lock_attempt() that returns
 1.
 
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_lock_free.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_lock_free.html
index c56d3f3..44e25cc 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_lock_free.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_lock_free.html
@@ -26,7 +26,7 @@
 unlocked or currently locked (by any thread).
 <p>Any subsequent calls to locking functions from any thread using <code>ptr</code> have
 undefined effects. This also applies to any thread currently calling <code>upc_lock</code>.
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_lock_t.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_lock_t.html
index 42aa596..6746f08 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_lock_t.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_lock_t.html
@@ -18,7 +18,7 @@
 to such pointers are undefined.
 
 
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_memcpy.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_memcpy.html
index c5e4af6..e5f4a65 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_memcpy.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_memcpy.html
@@ -27,7 +27,7 @@
 object with this type (the <code>src</code> array) to another shared array object with
 this type (the <code>dst</code> array).
 
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_memget.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_memget.html
index 6cbc444..9d97a1b 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_memget.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_memget.html
@@ -29,7 +29,7 @@
 </pre>
 
 
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_memset.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_memset.html
index 184d820..9c09acc 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_memset.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_memset.html
@@ -26,7 +26,7 @@
 The effect is equivalent to setting the entire contents of a shared array object
 with this type (the <code>dst</code> array) to the value c.
 
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_phaseof.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_phaseof.html
index bee4bfa..c0d5a2b 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_phaseof.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_phaseof.html
@@ -13,7 +13,7 @@
 <p>If <code>ptr</code> is a null pointer-to-shared, the function returns 0.
 
 
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_resetphase.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_resetphase.html
index 8327802..1375218 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_resetphase.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_resetphase.html
@@ -13,7 +13,7 @@
 to its input except that it has zero phase.
 
 
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_threadof.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_threadof.html
index a0b410b..c549b79 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_threadof.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_threadof.html
@@ -14,7 +14,7 @@
 <p>
 If <code>ptr</code> is a null pointer-to-shared, the function returns 0.
 
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_unlock.html b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_unlock.html
index 112d0ab..a9f865b 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_unlock.html
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/html/upc_unlock.html
@@ -18,7 +18,7 @@
 the result is undefined.
 <p>A null strict access is implied before a call to upc unlock().
 
-<p>&nbsp
-<p>&nbsp
+<p>&nbsp;
+<p>&nbsp;
 <p><a href="terms.html">Terms, definitions, and symbols</a><br>
 <p><a href="index.html">Back to index of all UPC functions</a>
diff --git a/tools/pldt/org.eclipse.ptp.pldt.upc/pom.xml b/tools/pldt/org.eclipse.ptp.pldt.upc/pom.xml
index 83c694a..d4486ae 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.upc/pom.xml
+++ b/tools/pldt/org.eclipse.ptp.pldt.upc/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/pldt/org.eclipse.ptp.pldt.wizards/pom.xml b/tools/pldt/org.eclipse.ptp.pldt.wizards/pom.xml
index 0b44f60..34969c3 100644
--- a/tools/pldt/org.eclipse.ptp.pldt.wizards/pom.xml
+++ b/tools/pldt/org.eclipse.ptp.pldt.wizards/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/remotetools/org.eclipse.ptp.remotetools.core/pom.xml b/tools/remotetools/org.eclipse.ptp.remotetools.core/pom.xml
index 3cb24a2..3c5ce91 100644
--- a/tools/remotetools/org.eclipse.ptp.remotetools.core/pom.xml
+++ b/tools/remotetools/org.eclipse.ptp.remotetools.core/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/remotetools/org.eclipse.ptp.remotetools.environment.core/pom.xml b/tools/remotetools/org.eclipse.ptp.remotetools.environment.core/pom.xml
index e924d22..68ea3cf 100644
--- a/tools/remotetools/org.eclipse.ptp.remotetools.environment.core/pom.xml
+++ b/tools/remotetools/org.eclipse.ptp.remotetools.environment.core/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/remotetools/org.eclipse.ptp.remotetools.environment.generichost/pom.xml b/tools/remotetools/org.eclipse.ptp.remotetools.environment.generichost/pom.xml
index 3fd8eef..2021454 100644
--- a/tools/remotetools/org.eclipse.ptp.remotetools.environment.generichost/pom.xml
+++ b/tools/remotetools/org.eclipse.ptp.remotetools.environment.generichost/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/remotetools/org.eclipse.ptp.remotetools.environment.ui/pom.xml b/tools/remotetools/org.eclipse.ptp.remotetools.environment.ui/pom.xml
index 6002a4c..e93117a 100644
--- a/tools/remotetools/org.eclipse.ptp.remotetools.environment.ui/pom.xml
+++ b/tools/remotetools/org.eclipse.ptp.remotetools.environment.ui/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/remotetools/org.eclipse.ptp.remotetools.preferences/plugin.xml b/tools/remotetools/org.eclipse.ptp.remotetools.preferences/plugin.xml
index f6c72d2..223495f 100755
--- a/tools/remotetools/org.eclipse.ptp.remotetools.preferences/plugin.xml
+++ b/tools/remotetools/org.eclipse.ptp.remotetools.preferences/plugin.xml
@@ -5,7 +5,7 @@
    <extension
          point="org.eclipse.ui.preferencePages">
       <page
-            category="org.eclipse.ptp.remote.ui.RemoteDevelopmentPreferencePage"
+            category="org.eclipse.remote.ui.RemoteDevelopmentPreferencePage"
             class="org.eclipse.ptp.remotetools.preferences.ui.TargetPreferencePage"
             id="org.eclipse.ptp.remotetools.preferences.ui.RemoteToolsPreferencePage"
             name="Remote Tools">
diff --git a/tools/remotetools/org.eclipse.ptp.remotetools.preferences/pom.xml b/tools/remotetools/org.eclipse.ptp.remotetools.preferences/pom.xml
index 9286576..966826f 100644
--- a/tools/remotetools/org.eclipse.ptp.remotetools.preferences/pom.xml
+++ b/tools/remotetools/org.eclipse.ptp.remotetools.preferences/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/remotetools/org.eclipse.ptp.remotetools.utils/pom.xml b/tools/remotetools/org.eclipse.ptp.remotetools.utils/pom.xml
index 73c974d..2321538 100644
--- a/tools/remotetools/org.eclipse.ptp.remotetools.utils/pom.xml
+++ b/tools/remotetools/org.eclipse.ptp.remotetools.utils/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/sci/org.eclipse.ptp.sci/META-INF/MANIFEST.MF b/tools/sci/org.eclipse.ptp.sci/META-INF/MANIFEST.MF
index bb24517..814dc89 100644
--- a/tools/sci/org.eclipse.ptp.sci/META-INF/MANIFEST.MF
+++ b/tools/sci/org.eclipse.ptp.sci/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.ptp.sci
-Bundle-Version: 7.0.5.qualifier
+Bundle-Version: 8.0.0.qualifier
 Bundle-Vendor: %pluginProvider
 Bundle-Localization: plugin
diff --git a/tools/sci/org.eclipse.ptp.sci/pom.xml b/tools/sci/org.eclipse.ptp.sci/pom.xml
index 49fb995..72eda2a 100644
--- a/tools/sci/org.eclipse.ptp.sci/pom.xml
+++ b/tools/sci/org.eclipse.ptp.sci/pom.xml
@@ -6,12 +6,12 @@
   <parent>
     <groupId>org.eclipse.ptp</groupId>
     <artifactId>ptp-parent</artifactId>
-    <version>7.0.5-SNAPSHOT</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
   <artifactId>org.eclipse.ptp.sci</artifactId>
-  <version>7.0.5-SNAPSHOT</version>
+  <version>8.0.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
     <build>