diff --git a/org.eclipse.ice.client.widgets.test/META-INF/MANIFEST.MF b/org.eclipse.ice.client.widgets.test/META-INF/MANIFEST.MF
index 2d28be3eae597e148ba5ae095694816fe9fc19bc..a5dde292d9556459600bb761ed6aa34f6950d795 100644
--- a/org.eclipse.ice.client.widgets.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.ice.client.widgets.test/META-INF/MANIFEST.MF
@@ -5,9 +5,10 @@ Bundle-SymbolicName: org.eclipse.ice.client.widgets.test
 Bundle-Version: 2.1.8.qualifier
 Fragment-Host: org.eclipse.ice.client.widgets;bundle-version="2.0.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: org.eclipse.eavp.viz.service.geometry.shapes,
+Import-Package: org.eclipse.eavp.viz.modeling,
  org.eclipse.eavp.viz.service.geometry.widgets,
- org.eclipse.eavp.viz.modeling,
+ org.eclipse.eavp.viz.service.javafx.canvas,
+ org.eclipse.january.geometry,
  org.eclipse.ui,
  org.junit
 Require-Bundle: org.eclipse.swtbot.eclipse.core,
diff --git a/org.eclipse.ice.client.widgets.test/src/org/eclipse/ice/client/widgets/test/ICEGeometryPageTester.java b/org.eclipse.ice.client.widgets.test/src/org/eclipse/ice/client/widgets/test/ICEGeometryPageTester.java
index 4e5a7af7c54e17e0e29442ae7811d52b38a67759..5e676e2c6f15a5cdd74886543a781b28bd806f68 100644
--- a/org.eclipse.ice.client.widgets.test/src/org/eclipse/ice/client/widgets/test/ICEGeometryPageTester.java
+++ b/org.eclipse.ice.client.widgets.test/src/org/eclipse/ice/client/widgets/test/ICEGeometryPageTester.java
@@ -14,12 +14,10 @@ package org.eclipse.ice.client.widgets.test;
 
 import static org.junit.Assert.assertTrue;
 
-import org.eclipse.eavp.viz.modeling.base.BasicView;
-import org.eclipse.eavp.viz.modeling.ShapeController;
-import org.eclipse.eavp.viz.modeling.Shape;
 import org.eclipse.ice.client.widgets.ICEFormEditor;
 import org.eclipse.ice.client.widgets.ICEGeometryPage;
 import org.eclipse.ice.datastructures.form.GeometryComponent;
+import org.eclipse.january.geometry.GeometryFactory;
 import org.junit.Test;
 
 /**
@@ -43,10 +41,10 @@ public class ICEGeometryPageTester {
 		// Get two GeometryComponent to check equality
 		GeometryComponent geometryComponent = new GeometryComponent();
 		GeometryComponent otherGeometryComponent = new GeometryComponent();
-		geometryComponent.setGeometry(
-				new ShapeController(new Shape(), new BasicView()));
-		geometryComponent.setGeometry(
-				new ShapeController(new Shape(), new BasicView()));
+		geometryComponent
+				.setGeometry(GeometryFactory.eINSTANCE.createGeometry());
+		geometryComponent
+				.setGeometry(GeometryFactory.eINSTANCE.createGeometry());
 
 		// Get ICEGeometryPage to check accessor
 		ICEFormEditor ICEFormEditor = new ICEFormEditor();
diff --git a/org.eclipse.ice.client.widgets.test/src/org/eclipse/ice/client/widgets/test/geometry/ShapeTreeContentProviderTest.java b/org.eclipse.ice.client.widgets.test/src/org/eclipse/ice/client/widgets/test/geometry/ShapeTreeContentProviderTest.java
index 3792802c161787e31b5e2278f8d4fb238759322c..80c9220ddf088cb3234e8d0efdcbeb176210575e 100644
--- a/org.eclipse.ice.client.widgets.test/src/org/eclipse/ice/client/widgets/test/geometry/ShapeTreeContentProviderTest.java
+++ b/org.eclipse.ice.client.widgets.test/src/org/eclipse/ice/client/widgets/test/geometry/ShapeTreeContentProviderTest.java
@@ -18,15 +18,24 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
+import org.eclipse.eavp.viz.modeling.Shape;
+import org.eclipse.eavp.viz.modeling.ShapeController;
 import org.eclipse.eavp.viz.modeling.base.BasicView;
 import org.eclipse.eavp.viz.modeling.properties.MeshProperty;
-import org.eclipse.eavp.viz.modeling.ShapeController;
-import org.eclipse.eavp.viz.modeling.Shape;
 import org.eclipse.eavp.viz.service.geometry.shapes.GeometryMeshProperty;
 import org.eclipse.eavp.viz.service.geometry.shapes.OperatorType;
 import org.eclipse.eavp.viz.service.geometry.shapes.ShapeType;
 import org.eclipse.eavp.viz.service.geometry.widgets.ShapeTreeContentProvider;
+import org.eclipse.eavp.viz.service.javafx.canvas.FXAttachment;
+import org.eclipse.eavp.viz.service.javafx.canvas.FXAttachmentManager;
 import org.eclipse.ice.datastructures.form.GeometryComponent;
+import org.eclipse.january.geometry.Complement;
+import org.eclipse.january.geometry.Cube;
+import org.eclipse.january.geometry.Geometry;
+import org.eclipse.january.geometry.GeometryFactory;
+import org.eclipse.january.geometry.Intersection;
+import org.eclipse.january.geometry.Sphere;
+import org.eclipse.january.geometry.Union;
 import org.junit.Test;
 
 /**
@@ -48,7 +57,8 @@ public class ShapeTreeContentProviderTest {
 
 		// Create all needed objects
 
-		ShapeTreeContentProvider shapeProvider = new ShapeTreeContentProvider();
+		ShapeTreeContentProvider shapeProvider = new ShapeTreeContentProvider(
+				new FXAttachment(new FXAttachmentManager()));
 
 		// Create a shape
 		Shape geometryModel = new Shape();
@@ -127,7 +137,8 @@ public class ShapeTreeContentProviderTest {
 
 		// Create all needed objects
 
-		ShapeTreeContentProvider shapeProvider = new ShapeTreeContentProvider();
+		ShapeTreeContentProvider shapeProvider = new ShapeTreeContentProvider(
+				new FXAttachment(new FXAttachmentManager()));
 
 		// Create a shape
 		Shape geometryModel = new Shape();
@@ -189,7 +200,8 @@ public class ShapeTreeContentProviderTest {
 		// but we can still check whether it doesn't throw exceptions upon
 		// creation and destruction.
 
-		ShapeTreeContentProvider shapeProvider = new ShapeTreeContentProvider();
+		ShapeTreeContentProvider shapeProvider = new ShapeTreeContentProvider(
+				new FXAttachment(new FXAttachmentManager()));
 
 		shapeProvider.dispose();
 
@@ -206,29 +218,27 @@ public class ShapeTreeContentProviderTest {
 
 		// Create all needed objects
 
-		ShapeTreeContentProvider shapeProvider = new ShapeTreeContentProvider();
+		ShapeTreeContentProvider shapeProvider = new ShapeTreeContentProvider(
+				new FXAttachment(new FXAttachmentManager()));
 
-		Shape geometryModel = new Shape();
-		geometryModel.setProperty(MeshProperty.TYPE, ShapeType.Sphere.toString());
-		BasicView geometryView = new BasicView();
-		ShapeController geometry = new ShapeController(geometryModel,
-				geometryView);
+		Geometry geometry = GeometryFactory.eINSTANCE.createGeometry();
 
-		ShapeController sphere1 = (ShapeController) geometry.clone();
-		ShapeController cube1 = (ShapeController) geometry.clone();
-		ShapeController union1 = (ShapeController) geometry.clone();
-		ShapeController complement1 = (ShapeController) geometry.clone();
-		ShapeController intersection1 = (ShapeController) geometry.clone();
+		Sphere sphere1 = GeometryFactory.eINSTANCE.createSphere();
+		Cube cube1 = GeometryFactory.eINSTANCE.createCube();
+		Union union1 = GeometryFactory.eINSTANCE.createUnion();
+		Complement complement1 = GeometryFactory.eINSTANCE.createComplement();
+		Intersection intersection1 = GeometryFactory.eINSTANCE
+				.createIntersection();
 
 		// Put them all in a GeometryComponent
 
 		GeometryComponent geometryComponent = new GeometryComponent();
 		geometryComponent.setGeometry(geometry);
-		geometryComponent.getGeometry().addEntity(sphere1);
-		geometryComponent.getGeometry().addEntity(cube1);
-		geometryComponent.getGeometry().addEntity(union1);
-		geometryComponent.getGeometry().addEntity(complement1);
-		geometryComponent.getGeometry().addEntity(sphere1);
+		geometryComponent.getGeometry().addNode(sphere1);
+		geometryComponent.getGeometry().addNode(cube1);
+		geometryComponent.getGeometry().addNode(union1);
+		geometryComponent.getGeometry().addNode(complement1);
+		geometryComponent.getGeometry().addNode(sphere1);
 
 		Object[] expectedElements = new Object[] { sphere1, cube1, union1,
 				complement1, sphere1 };
diff --git a/org.eclipse.ice.client.widgets/META-INF/MANIFEST.MF b/org.eclipse.ice.client.widgets/META-INF/MANIFEST.MF
index a9d1a32baf50fe196dcd94d3afc69e31b8677bfb..d0692f5fcc5e3c4ffacea2fa48f10e2e77d828a4 100644
--- a/org.eclipse.ice.client.widgets/META-INF/MANIFEST.MF
+++ b/org.eclipse.ice.client.widgets/META-INF/MANIFEST.MF
@@ -11,7 +11,9 @@ Require-Bundle: org.eclipse.ice.datastructures,
  org.eclipse.nebula.widgets.nattable.core;bundle-version="1.3.0",
  org.eclipse.nebula.widgets.nattable.extension.glazedlists;bundle-version="1.3.0",
  org.eclipse.remote.ui;bundle-version="2.0.0",
- org.eclipse.swt
+ org.eclipse.swt,
+ org.eclipse.eavp.geometry.view.model;bundle-version="0.1.0",
+ org.eclipse.january.geometry.model;bundle-version="1.0.0"
 Import-Package: 
  com.sun.jersey.api.client;version="1.17.0",
  org.apache.commons.io,
@@ -37,7 +39,6 @@ Import-Package:
  org.eclipse.eavp.viz.modeling.properties,
  org.eclipse.eavp.viz.service,
  org.eclipse.eavp.viz.service.csv,
- org.eclipse.eavp.viz.service.geometry.shapes,
  org.eclipse.eavp.viz.service.geometry.widgets,
  org.eclipse.eavp.viz.service.internal,
  org.eclipse.eavp.viz.service.mesh.datastructures,
diff --git a/org.eclipse.ice.client.widgets/src/org/eclipse/ice/client/widgets/ICEGeometryPage.java b/org.eclipse.ice.client.widgets/src/org/eclipse/ice/client/widgets/ICEGeometryPage.java
index 91c3996ca7bf4c3771ab0277811f8f2f3ac47ccd..32757e5ae3211491834b6e9a8f07a15745935b16 100644
--- a/org.eclipse.ice.client.widgets/src/org/eclipse/ice/client/widgets/ICEGeometryPage.java
+++ b/org.eclipse.ice.client.widgets/src/org/eclipse/ice/client/widgets/ICEGeometryPage.java
@@ -64,6 +64,12 @@ public class ICEGeometryPage extends ICEFormPage
 	 */
 	private IVizService service;
 
+	/**
+	 * The IVizCanvas responsible for drawing the composite this page will
+	 * display.
+	 */
+	private IVizCanvas vizCanvas;
+
 	/**
 	 * <p>
 	 * This sets the FormEditor to be opened on, as well as the id and title
@@ -144,6 +150,8 @@ public class ICEGeometryPage extends ICEFormPage
 		ShapeTreeView shapeTreeView = (ShapeTreeView) getSite()
 				.getWorkbenchWindow().getActivePage()
 				.findView(ShapeTreeView.ID);
+		shapeTreeView.setRenderElementHolder(
+				vizCanvas.getRenderElementHolder(geometryComp.getGeometry()));
 		shapeTreeView.setGeometry(geometryComp.getGeometry());
 
 		return;
@@ -191,14 +199,11 @@ public class ICEGeometryPage extends ICEFormPage
 		// Get Geometry service from factory
 		IVizServiceFactory factory = editor.getVizServiceFactory();
 		service = factory.get("ICE Geometry Editor");
-		((ShapeTreeView) getSite().getWorkbenchWindow().getActivePage()
-				.findView(ShapeTreeView.ID)).setFactory(service.getControllerProviderFactory());
 		geometryComp.setService(service);
 
 		// Create and draw geometry canvas
 		try {
-			IVizCanvas vizCanvas = service
-					.createCanvas(geometryComp.getGeometry());
+			vizCanvas = service.createCanvas(geometryComp.getGeometry());
 			vizCanvas.draw(parent);
 
 		} catch (Exception e) {
diff --git a/org.eclipse.ice.datastructures.test/META-INF/MANIFEST.MF b/org.eclipse.ice.datastructures.test/META-INF/MANIFEST.MF
index ff706150236c02315aad8abf2e9b7a8800eb52ef..f006418625fa8adba12fe35d810ea49bd1618e3c 100644
--- a/org.eclipse.ice.datastructures.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.ice.datastructures.test/META-INF/MANIFEST.MF
@@ -21,6 +21,7 @@ Import-Package: ca.odell.glazedlists,
  org.eclipse.emf.ecore.xmi,
  org.eclipse.emf.ecore.xmi.impl,
  org.eclipse.emf.ecore.xmi.util,
+ org.eclipse.january.geometry,
  org.osgi.framework;version="1.6.0",
  org.osgi.util.tracker;version="1.5.0",
  org.slf4j;version="1.7.2"
diff --git a/org.eclipse.ice.datastructures.test/src/org/eclipse/ice/datastructures/test/GeometryComponentTester.java b/org.eclipse.ice.datastructures.test/src/org/eclipse/ice/datastructures/test/GeometryComponentTester.java
index cbb2e1626b836ed04e5dfa86656a80d0f0f26a6a..ed74f2487c4bea5f8158b867ea8d7f9fa52ebb08 100644
--- a/org.eclipse.ice.datastructures.test/src/org/eclipse/ice/datastructures/test/GeometryComponentTester.java
+++ b/org.eclipse.ice.datastructures.test/src/org/eclipse/ice/datastructures/test/GeometryComponentTester.java
@@ -20,17 +20,17 @@ import static org.junit.Assert.fail;
 
 import java.util.List;
 
-import org.eclipse.eavp.viz.service.geometry.shapes.GeometryMeshProperty;
-import org.eclipse.eavp.viz.service.geometry.shapes.OperatorType;
-import org.eclipse.eavp.viz.service.geometry.shapes.ShapeType;
-import org.eclipse.eavp.viz.modeling.base.BasicController;
-import org.eclipse.eavp.viz.modeling.base.BasicView;
-import org.eclipse.eavp.viz.modeling.base.IController;
-import org.eclipse.eavp.viz.modeling.properties.MeshProperty;
-import org.eclipse.eavp.viz.modeling.ShapeController;
-import org.eclipse.eavp.viz.modeling.Shape;
 import org.eclipse.ice.datastructures.ICEObject.Component;
 import org.eclipse.ice.datastructures.form.GeometryComponent;
+import org.eclipse.january.geometry.Cube;
+import org.eclipse.january.geometry.Cylinder;
+import org.eclipse.january.geometry.Geometry;
+import org.eclipse.january.geometry.GeometryFactory;
+import org.eclipse.january.geometry.INode;
+import org.eclipse.january.geometry.Intersection;
+import org.eclipse.january.geometry.Operator;
+import org.eclipse.january.geometry.Shape;
+import org.eclipse.january.geometry.Sphere;
 import org.junit.Test;
 
 /**
@@ -53,45 +53,40 @@ public class GeometryComponentTester {
 	public void checkAddShapes() {
 
 		// Create a shape
-		Shape geometryModel = new Shape();
-		geometryModel.setProperty(MeshProperty.TYPE,
-				ShapeType.Sphere.toString());
-		BasicView geometryView = new BasicView();
-		ShapeController geometryShape = new ShapeController(geometryModel,
-				geometryView);
+		Geometry geometryShape = GeometryFactory.eINSTANCE.createGeometry();
 
 		// Instantiate a GeometryComponent
 		GeometryComponent geometry = new GeometryComponent();
 		geometry.setGeometry(geometryShape);
 
 		// Add a PrimitiveShape
-		ShapeController sphere = (ShapeController) geometryShape.clone();
-		geometry.getGeometry().addEntity(sphere);
-		assertEquals(1, geometry.getGeometry().getEntities().size());
-		assertEquals(sphere, geometry.getGeometry().getEntities().get(0));
+		Sphere sphere = GeometryFactory.eINSTANCE.createSphere();
+		geometry.getGeometry().addNode(sphere);
+		assertEquals(1, geometry.getGeometry().getNodes().size());
+		assertEquals(sphere, geometry.getGeometry().getNodes().get(0));
 
 		// Add a ComplexShape
-		ShapeController complex = (ShapeController) geometryShape.clone();
-		geometry.getGeometry().addEntity(complex);
-		assertEquals(2, geometry.getGeometry().getEntities().size());
-		assertEquals(complex, geometry.getGeometry().getEntities().get(1));
+		Operator complex = GeometryFactory.eINSTANCE.createOperator();
+		geometry.getGeometry().addNode(complex);
+		assertEquals(2, geometry.getGeometry().getNodes().size());
+		assertEquals(complex, geometry.getGeometry().getNodes().get(1));
 
 		// Try adding null
-		geometry.getGeometry().addEntity(null);
-		assertEquals(2, geometry.getGeometry().getEntities().size());
+		geometry.getGeometry().addNode(null);
+		assertEquals(2, geometry.getGeometry().getNodes().size());
 
 		// Add a shape with an unknown concrete type
-		ShapeController unknownShape = (ShapeController) geometryShape.clone();
-		geometry.getGeometry().addEntity(unknownShape);
-		assertEquals(3, geometry.getGeometry().getEntities().size());
-		assertEquals(unknownShape, geometry.getGeometry().getEntities().get(2));
+		Shape unknownShape = GeometryFactory.eINSTANCE.createShape();
+		geometry.getGeometry().addNode(unknownShape);
+		assertEquals(3, geometry.getGeometry().getNodes().size());
+		assertEquals(unknownShape, geometry.getGeometry().getNodes().get(2));
 
 		// Remove the second shape
-		geometry.getGeometry().removeEntity(complex);
-		assertEquals(2, geometry.getGeometry().getEntities().size());
+		geometry.getGeometry().removeNode(complex);
+		assertEquals(2, geometry.getGeometry().getNodes().size());
 
 		// Steal the list from the GeometryComponent
-		List<IController> shapes = geometry.getGeometry().getEntities();
+		List<INode> shapes = geometry.getGeometry().getNodes();
 		assertEquals(2, shapes.size());
 
 		// Remove a shape from the stolen list
@@ -147,12 +142,7 @@ public class GeometryComponentTester {
 	public void checkNotifications() {
 
 		// Create a shape
-		Shape geometryModel = new Shape();
-		geometryModel.setProperty(MeshProperty.TYPE,
-				ShapeType.Sphere.toString());
-		BasicView geometryView = new BasicView();
-		ShapeController geometryShape = new ShapeController(geometryModel,
-				geometryView);
+		Geometry geometryShape = GeometryFactory.eINSTANCE.createGeometry();
 
 		// Create a new listener and add it to a GeometryComponent
 		GeometryComponent geometry = new GeometryComponent();
@@ -161,8 +151,7 @@ public class GeometryComponentTester {
 		geometry.register(listener);
 
 		// Modify geometryComponent's shapes list
-		geometry.getGeometry()
-				.addEntity((BasicController) geometryShape.clone());
+		geometry.getGeometry().addNode(GeometryFactory.eINSTANCE.createShape());
 
 		// Check that the listener was notified and reset the listener
 		assertTrue(listener.wasNotified());
@@ -257,12 +246,7 @@ public class GeometryComponentTester {
 	@Test
 	public void checkEquality() {
 
-		Shape geometryModel = new Shape();
-		geometryModel.setProperty(MeshProperty.TYPE,
-				ShapeType.Sphere.toString());
-		BasicView geometryView = new BasicView();
-		ShapeController geometryShape = new ShapeController(geometryModel,
-				geometryView);
+		Geometry geometryShape = GeometryFactory.eINSTANCE.createGeometry();
 
 		// Create GeometryComponent to test
 		GeometryComponent component = new GeometryComponent();
@@ -270,23 +254,20 @@ public class GeometryComponentTester {
 		GeometryComponent unEqualComponent = new GeometryComponent();
 		GeometryComponent transitiveComponent = new GeometryComponent();
 		component.setGeometry(geometryShape);
-		equalComponent.setGeometry((ShapeController) geometryShape.clone());
-		unEqualComponent.setGeometry((ShapeController) geometryShape.clone());
-		transitiveComponent
-				.setGeometry((ShapeController) geometryShape.clone());
+		equalComponent.setGeometry((Geometry) geometryShape.clone());
+		unEqualComponent.setGeometry((Geometry) geometryShape.clone());
+		transitiveComponent.setGeometry((Geometry) geometryShape.clone());
 
 		// Change values
-		ShapeController shape = (ShapeController) geometryShape.clone();
-		shape.setProperty(MeshProperty.TYPE, ShapeType.Cylinder.toString());
-		ShapeController weirdShape = (ShapeController) geometryShape.clone();
-		shape.setProperty(GeometryMeshProperty.OPERATOR,
-				OperatorType.Intersection.toString());
+		Cylinder shape = GeometryFactory.eINSTANCE.createCylinder();
+		Intersection weirdShape = GeometryFactory.eINSTANCE
+				.createIntersection();
 
-		component.getGeometry().addEntity(shape);
-		equalComponent.getGeometry().addEntity(shape);
-		transitiveComponent.getGeometry().addEntity(shape);
+		component.getGeometry().addNode(shape);
+		equalComponent.getGeometry().addNode(shape);
+		transitiveComponent.getGeometry().addNode(shape);
 
-		unEqualComponent.getGeometry().addEntity(weirdShape);
+		unEqualComponent.getGeometry().addNode(weirdShape);
 
 		// Set ICEObject data
 		component.setId(1);
@@ -354,20 +335,15 @@ public class GeometryComponentTester {
 	public void checkCreation() {
 
 		// Create a shape
-		Shape geometryModel = new Shape();
-		geometryModel.setProperty(MeshProperty.TYPE,
-				ShapeType.Sphere.toString());
-		BasicView geometryView = new BasicView();
-		ShapeController geometryShape = new ShapeController(geometryModel,
-				geometryView);
+		Geometry geometryShape = GeometryFactory.eINSTANCE.createGeometry();
 
 		// Create a new GeometryComponent
 		GeometryComponent geometry = new GeometryComponent();
 		geometry.setGeometry(geometryShape);
 
 		// Check that the shapes list exists but is empty
-		assertNotNull(geometry.getGeometry().getEntities());
-		assertTrue(geometry.getGeometry().getEntities().isEmpty());
+		assertNotNull(geometry.getGeometry().getNodes());
+		assertTrue(geometry.getGeometry().getNodes().isEmpty());
 
 	}
 
@@ -382,12 +358,7 @@ public class GeometryComponentTester {
 	public void checkCopying() {
 
 		// Create a shape
-		Shape geometryModel = new Shape();
-		geometryModel.setProperty(MeshProperty.TYPE,
-				ShapeType.Sphere.toString());
-		BasicView geometryView = new BasicView();
-		ShapeController geometryShape = new ShapeController(geometryModel,
-				geometryView);
+		Geometry geometryShape = GeometryFactory.eINSTANCE.createGeometry();
 
 		GeometryComponent geometry = new GeometryComponent();
 		GeometryComponent cloneGeometry;
@@ -400,19 +371,12 @@ public class GeometryComponentTester {
 		geometry.setName("Geometry name");
 
 		// Set up GeometryComponent-specific stuff
-		Shape sphereModel = new Shape();
-		sphereModel.setProperty(MeshProperty.TYPE, ShapeType.Sphere.toString());
-		BasicView sphereView = new BasicView();
-		ShapeController sphere1 = new ShapeController(sphereModel, sphereView);
-
-		Shape cubeModel = new Shape();
-		cubeModel.setProperty(GeometryMeshProperty.OPERATOR,
-				OperatorType.Union.toString());
-		BasicView cubeView = new BasicView();
-		ShapeController cube1 = new ShapeController(cubeModel, cubeView);
-
-		geometry.getGeometry().addEntity(sphere1);
-		geometry.getGeometry().addEntity(cube1);
+		Sphere sphere1 = GeometryFactory.eINSTANCE.createSphere();
+
+		Cube cube1 = GeometryFactory.eINSTANCE.createCube();
+
+		geometry.getGeometry().addNode(sphere1);
+		geometry.getGeometry().addNode(cube1);
 
 		// Clone contents
 		cloneGeometry = (GeometryComponent) geometry.clone();
diff --git a/org.eclipse.ice.datastructures/META-INF/MANIFEST.MF b/org.eclipse.ice.datastructures/META-INF/MANIFEST.MF
index d028b0e73e9077890a4e48a9c6529020f6f4462f..0703259609bcfc5e7e6eebbaf0310a06af1e6fed 100644
--- a/org.eclipse.ice.datastructures/META-INF/MANIFEST.MF
+++ b/org.eclipse.ice.datastructures/META-INF/MANIFEST.MF
@@ -25,9 +25,10 @@ Import-Package: ca.odell.glazedlists,
  org.eclipse.eavp.viz.modeling.base,
  org.eclipse.eavp.viz.modeling.properties,
  org.eclipse.eavp.viz.service,
- org.eclipse.eavp.viz.service.geometry.persistence,
  org.eclipse.eavp.viz.service.mesh.datastructures,
  org.eclipse.emf.common,
+ org.eclipse.emf.common.notify,
+ org.eclipse.emf.common.notify.impl,
  org.eclipse.emf.common.util,
  org.eclipse.emf.ecore,
  org.eclipse.emf.ecore.resource,
@@ -35,6 +36,7 @@ Import-Package: ca.odell.glazedlists,
  org.eclipse.emf.ecore.xmi,
  org.eclipse.emf.ecore.xmi.impl,
  org.eclipse.emf.ecore.xmi.util,
+ org.eclipse.january.geometry,
  org.eclipse.xsd,
  org.osgi.framework;version="1.6.0",
  org.slf4j;version="1.7.2"
diff --git a/org.eclipse.ice.datastructures/src/org/eclipse/ice/datastructures/form/GeometryComponent.java b/org.eclipse.ice.datastructures/src/org/eclipse/ice/datastructures/form/GeometryComponent.java
index af92344dc7792f2ac989b114c8c409efdb7c1a1d..ef862ab61e5c5746b939b8a05dae17c71dc727ed 100644
--- a/org.eclipse.ice.datastructures/src/org/eclipse/ice/datastructures/form/GeometryComponent.java
+++ b/org.eclipse.ice.datastructures/src/org/eclipse/ice/datastructures/form/GeometryComponent.java
@@ -16,23 +16,22 @@ import java.util.ArrayList;
 
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlTransient;
 
 import org.eclipse.eavp.viz.datastructures.VizObject.IManagedUpdateable;
 import org.eclipse.eavp.viz.datastructures.VizObject.IManagedUpdateableListener;
 import org.eclipse.eavp.viz.datastructures.VizObject.SubscriptionType;
-import org.eclipse.eavp.viz.modeling.ShapeController;
-import org.eclipse.eavp.viz.modeling.Shape;
-import org.eclipse.eavp.viz.modeling.properties.MeshProperty;
 import org.eclipse.eavp.viz.service.IVizService;
-import org.eclipse.eavp.viz.service.geometry.persistence.PersistableShape;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
 import org.eclipse.ice.datastructures.ICEObject.Component;
 import org.eclipse.ice.datastructures.ICEObject.ICEObject;
 import org.eclipse.ice.datastructures.ICEObject.IUpdateable;
 import org.eclipse.ice.datastructures.ICEObject.IUpdateableListener;
 import org.eclipse.ice.datastructures.componentVisitor.IComponentVisitor;
+import org.eclipse.january.geometry.Geometry;
+import org.eclipse.january.geometry.GeometryFactory;
 
 /**
  * <p>
@@ -47,12 +46,6 @@ import org.eclipse.ice.datastructures.componentVisitor.IComponentVisitor;
 public class GeometryComponent extends ICEObject
 		implements Component, IUpdateableListener, IManagedUpdateableListener {
 
-	/**
-	 * The component's geometry in a temporary compresed form.
-	 */
-	@XmlTransient
-	private PersistableShape compressedGeometry;
-
 	/**
 	 * <p>
 	 * The set of ComponentListeners observing the GeometryComponent
@@ -66,7 +59,7 @@ public class GeometryComponent extends ICEObject
 	 * The Geometry managed by the GeometryComponent
 	 */
 	@XmlTransient
-	private ShapeController geometry;
+	private Geometry geometry;
 
 	/**
 	 * The service being used to render this component.
@@ -136,6 +129,9 @@ public class GeometryComponent extends ICEObject
 		// Create a new listeners list
 		listeners = new ArrayList<IUpdateableListener>();
 
+		// Initialize the geometry
+		geometry = GeometryFactory.eINSTANCE.createGeometry();
+
 	}
 
 	/**
@@ -143,52 +139,32 @@ public class GeometryComponent extends ICEObject
 	 * 
 	 * @return The held Geometry
 	 */
-	public ShapeController getGeometry() {
+	public Geometry getGeometry() {
 		return geometry;
 	}
 
-	/**
-	 * Get the component's geometry in a persistable format. It is intended that
-	 * this function will only be called by JAXB.
-	 * 
-	 * @return A PersistableShape representing the component's CSG tree
-	 */
-	@XmlElement(name = "Geometry")
-	private PersistableShape getPersistableGeometry() {
-		return PersistableShape.compress((Shape) geometry.getModel());
-	}
-
 	/**
 	 * Mutator method for the held geometry
 	 * 
 	 * @param newGeometry
 	 *            the new Geometry to hold
 	 */
-	public void setGeometry(ShapeController newGeometry) {
+	public void setGeometry(Geometry newGeometry) {
 		geometry = newGeometry;
 
-		// Set the shape as being the root node for the scene
-		geometry.setProperty(MeshProperty.ROOT, "True");
-
 		// Register self as a listener for the geometry
-		geometry.register(this);
+		geometry.eAdapters().add(new AdapterImpl() {
+
+			@Override
+			public void notifyChanged(Notification notification) {
+				notifyListeners();
+			}
+		});
 
 		// Notify listeners
 		notifyListeners();
 	}
 
-	/**
-	 * Set the compressed form of the component's geometry. It is intended that
-	 * this function will only be called by JAXB.
-	 * 
-	 * @param root
-	 *            The compressed root of the CSG tree to be displayed by this
-	 *            component.
-	 */
-	private void setPersistableGeometry(PersistableShape root) {
-		compressedGeometry = root;
-	}
-
 	/**
 	 * Set the IVizService that will be used to visualize this component.
 	 * 
@@ -197,23 +173,6 @@ public class GeometryComponent extends ICEObject
 	 */
 	public void setService(IVizService service) {
 		this.service = service;
-
-		// If a geometry was read from the xml, expand it
-		if (compressedGeometry != null) {
-
-			// Unregister from the old geometry
-			if (geometry != null) {
-				geometry.unregister(this);
-			}
-
-			// Set the component's contents to a full version of the geometry
-			geometry = compressedGeometry.unpack(service.getControllerProviderFactory());
-			geometry.register(this);
-
-			// The full geometry is now in memory, so delete the compressed
-			// version
-			compressedGeometry = null;
-		}
 	}
 
 	/**
@@ -303,9 +262,9 @@ public class GeometryComponent extends ICEObject
 		super.copy(iceObject);
 
 		// Copy shapes list
-		ShapeController otherGeometry = iceObject.getGeometry();
+		Geometry otherGeometry = iceObject.getGeometry();
 		if (otherGeometry != null) {
-			this.setGeometry((ShapeController) otherGeometry.clone());
+			this.setGeometry((Geometry) otherGeometry.clone());
 		} else {
 			geometry = null;
 		}
diff --git a/org.eclipse.ice.demo/META-INF/MANIFEST.MF b/org.eclipse.ice.demo/META-INF/MANIFEST.MF
index e22fb197e640fdf62f85246fb9b6b5f3e9755e1f..f2152032ccbe7dc353a5f276054b9a006f1e10e4 100644
--- a/org.eclipse.ice.demo/META-INF/MANIFEST.MF
+++ b/org.eclipse.ice.demo/META-INF/MANIFEST.MF
@@ -4,7 +4,8 @@ Bundle-Name: Eclipse ICE Demo Plugin
 Bundle-SymbolicName: org.eclipse.ice.demo;singleton:=true
 Bundle-Version: 2.1.8.qualifier
 Bundle-Vendor: Oak Ridge National Laboratory
-Require-Bundle: org.eclipse.ui
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.january.geometry.model;bundle-version="0.1.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: org.eclipse.core.resources,
  org.eclipse.core.runtime,
diff --git a/org.eclipse.ice.demo/src/org/eclipse/ice/demo/model/DemoModel.java b/org.eclipse.ice.demo/src/org/eclipse/ice/demo/model/DemoModel.java
index c57230c53279f701d30bdb076aa6afe6a4d66cb6..8e04206cc0a3ba425b173706b47d1917e5569508 100644
--- a/org.eclipse.ice.demo/src/org/eclipse/ice/demo/model/DemoModel.java
+++ b/org.eclipse.ice.demo/src/org/eclipse/ice/demo/model/DemoModel.java
@@ -16,9 +16,6 @@ import javax.xml.bind.annotation.XmlRootElement;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.CoreException;
-import org.eclipse.eavp.viz.modeling.ShapeController;
-import org.eclipse.eavp.viz.modeling.Shape;
-import org.eclipse.eavp.viz.modeling.base.BasicView;
 import org.eclipse.ice.datastructures.entry.IEntry;
 import org.eclipse.ice.datastructures.entry.StringEntry;
 import org.eclipse.ice.datastructures.form.DataComponent;
@@ -29,6 +26,7 @@ import org.eclipse.ice.io.serializable.IIOService;
 import org.eclipse.ice.io.serializable.IReader;
 import org.eclipse.ice.io.serializable.IWriter;
 import org.eclipse.ice.item.model.Model;
+import org.eclipse.january.geometry.GeometryFactory;
 
 @XmlRootElement(name = "DemoModel")
 public class DemoModel extends Model {
@@ -71,8 +69,7 @@ public class DemoModel extends Model {
 		geomComp.setName("Geometry");
 		geomComp.setDescription("A geometry");
 		geomComp.setContext("demo-geometry");
-		geomComp.setGeometry(
-				new ShapeController(new Shape(), new BasicView()));
+		geomComp.setGeometry(GeometryFactory.eINSTANCE.createGeometry());
 
 		// Create a data component
 		DataComponent dataComp = new DataComponent();
diff --git a/org.eclipse.ice.demo/src/org/eclipse/ice/demo/visualization/model/VisualizationCompleteModel.java b/org.eclipse.ice.demo/src/org/eclipse/ice/demo/visualization/model/VisualizationCompleteModel.java
index 432cb50147db19fdd3c31eec65197ba1e8936479..661be517560190c67299db07209c7c9bf85b81d9 100644
--- a/org.eclipse.ice.demo/src/org/eclipse/ice/demo/visualization/model/VisualizationCompleteModel.java
+++ b/org.eclipse.ice.demo/src/org/eclipse/ice/demo/visualization/model/VisualizationCompleteModel.java
@@ -6,184 +6,177 @@ import javax.xml.bind.annotation.XmlRootElement;
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.eavp.viz.modeling.ShapeController;
-import org.eclipse.eavp.viz.modeling.Shape;
-import org.eclipse.eavp.viz.modeling.base.BasicView;
-import org.eclipse.ice.datastructures.ICEObject.Component;
-import org.eclipse.ice.datastructures.form.*;
+import org.eclipse.ice.datastructures.form.Form;
+import org.eclipse.ice.datastructures.form.FormStatus;
+import org.eclipse.ice.datastructures.form.GeometryComponent;
+import org.eclipse.ice.datastructures.form.MeshComponent;
+import org.eclipse.ice.datastructures.form.ResourceComponent;
 import org.eclipse.ice.datastructures.resource.VizResource;
-import org.eclipse.ice.datastructures.entry.*;
 import org.eclipse.ice.io.serializable.IIOService;
-import org.eclipse.ice.io.serializable.IOService;
 import org.eclipse.ice.io.serializable.IReader;
 import org.eclipse.ice.io.serializable.IWriter;
 import org.eclipse.ice.item.model.Model;
+import org.eclipse.january.geometry.Geometry;
+import org.eclipse.january.geometry.GeometryFactory;
 
 @XmlRootElement(name = "VisualizationCompleteModel")
 public class VisualizationCompleteModel extends Model {
 
-	// TODO: 
-	//   These need to be filled in before using this item
-	//   They can be set in the setupItemInfo() method
+	// TODO:
+	// These need to be filled in before using this item
+	// They can be set in the setupItemInfo() method
 	private String writerName;
 	private String readerName;
 	private String outputName;
 	// End required variables
-	
-    private String exportString;
+
+	private String exportString;
 	private IIOService ioService;
-    private IReader reader;
-    private IWriter writer;
-    
-    /**
-     * The Constructor
-     */
+	private IReader reader;
+	private IWriter writer;
+
+	/**
+	 * The Constructor
+	 */
 	public VisualizationCompleteModel() {
 		this(null);
 	}
 
 	/**
-	 * The Constructor, takes an IProject reference. 
+	 * The Constructor, takes an IProject reference.
 	 * 
-	 * @param project The project space this Item will be in.
+	 * @param project
+	 *            The project space this Item will be in.
 	 */
 	public VisualizationCompleteModel(IProject project) {
 		super(project);
 	}
 
 	/**
-	 * Sets the name, description, and custom action name 
-	 * for the item.
+	 * Sets the name, description, and custom action name for the item.
 	 */
 	@Override
 	protected void setupItemInfo() {
 		setName("VisualizationComplete Model");
 		setDescription("Specify information about VisualizationComplete");
 		writerName = "VisualizationCompleteDefaultWriterName";
-		readerName = "VisualizationCompleteDefaultReaderName";     	
-		outputName = "VisualizationCompleteDefaultOutputName";   
+		readerName = "VisualizationCompleteDefaultReaderName";
+		outputName = "VisualizationCompleteDefaultOutputName";
 		exportString = "Export to VisualizationComplete input format";
 		allowedActions.add(0, exportString);
 	}
 
 	/**
-	 * Adds relevant information that specify the ui provided
-	 * to the user when they create the VisualizationComplete Model Item
-	 * in ICE.  
+	 * Adds relevant information that specify the ui provided to the user when
+	 * they create the VisualizationComplete Model Item in ICE.
 	 */
 	@Override
 	public void setupForm() {
 		form = new Form();
-		
+
 		// Get reference to the IOService
-		// This will let us get IReader/IWriters for 
+		// This will let us get IReader/IWriters for
 		// our specific Model
 		ioService = getIOService();
 
-		//Create the resource component
+		// Create the resource component
 		ResourceComponent resourceComponent = new ResourceComponent();
 
-		//Set the component's data members
+		// Set the component's data members
 		resourceComponent.setName("Resource Component");
 		resourceComponent.setDescription("Results");
 		resourceComponent.setId(1);
 
-		//Declare the files and resources
+		// Declare the files and resources
 		VizResource csvResource = null;
 		VizResource visItResource = null;
 		IFile csvFile = null;
 		IFile visItFile = null;
 
-
-		//If the file was found, create the CSV resource and add it to the component
-		try{
-			
-			//Open the files
-			csvFile = ResourcesPlugin.getWorkspace().getRoot().getProject("itemDB").getFile("fib8.csv");
-			visItFile = ResourcesPlugin.getWorkspace().getRoot().getProject("itemDB").getFile("tire.silo");
-			
-			//If the file was found, create the CSV resource and add it to the component.
-			if(csvFile.exists()){
-				csvResource = new 
-		                    VizResource(csvFile.getLocation()
-		                    .toFile());
-		    	resourceComponent.addResource(csvResource);
+		// If the file was found, create the CSV resource and add it to the
+		// component
+		try {
+
+			// Open the files
+			csvFile = ResourcesPlugin.getWorkspace().getRoot()
+					.getProject("itemDB").getFile("fib8.csv");
+			visItFile = ResourcesPlugin.getWorkspace().getRoot()
+					.getProject("itemDB").getFile("tire.silo");
+
+			// If the file was found, create the CSV resource and add it to the
+			// component.
+			if (csvFile.exists()) {
+				csvResource = new VizResource(csvFile.getLocation().toFile());
+				resourceComponent.addResource(csvResource);
 			}
-				        
-			//If the file was found, create the VisIt resource and add it to 
-			//the component
-			if(visItFile.exists()){
-				visItResource = new 
-		                    VizResource(visItFile.getLocation()
-		                    .toFile());
+
+			// If the file was found, create the VisIt resource and add it to
+			// the component
+			if (visItFile.exists()) {
+				visItResource = new VizResource(
+						visItFile.getLocation().toFile());
 				resourceComponent.addResource(visItResource);
 			}
-		}
-		catch(IOException e){
+		} catch (IOException e) {
 			e.printStackTrace();
 		}
 
-		//Create the geometry component
-		ShapeController geometryRoot = new ShapeController(new
-		    Shape(), new BasicView());
-		GeometryComponent geometryComponent = new 
-		    GeometryComponent();
+		// Create the geometry component
+		Geometry geometryRoot = GeometryFactory.eINSTANCE.createGeometry();
+		GeometryComponent geometryComponent = new GeometryComponent();
 		geometryComponent.setGeometry(geometryRoot);
 		geometryComponent.setName("Geometry Editor");
 
-		//Create mesh component
+		// Create mesh component
 		MeshComponent meshComponent = new MeshComponent();
 		meshComponent.setName("Mesh Editor");
 
-		//Add the components to the form
+		// Add the components to the form
 		form.addComponent(resourceComponent);
 		form.addComponent(geometryComponent);
-		form.addComponent(meshComponent);	
-		
+		form.addComponent(meshComponent);
+
 		// Set the context on the Form
 		form.setContext("visualization");
-		
+
 	}
-	
+
 	/**
-	 * The reviewEntries method is used to ensure that the form is 
-	 * in an acceptable state before processing the information it
-	 * contains.  If the form is not ready to process it is advisable
-	 * to have this method return FormStatus.InfoError.
+	 * The reviewEntries method is used to ensure that the form is in an
+	 * acceptable state before processing the information it contains. If the
+	 * form is not ready to process it is advisable to have this method return
+	 * FormStatus.InfoError.
 	 * 
 	 * @param preparedForm
-	 *		the form to validate 
+	 *            the form to validate
 	 * @return whether the form was correctly set up
 	 */
 	@Override
 	protected FormStatus reviewEntries(Form preparedForm) {
 		FormStatus retStatus = FormStatus.ReadyToProcess;
-		
-		// Here you can add code that checks the Entries in the Form 
-		// after the user clicks Save. If there are any errors in the 
-		// Entry values, return FormStatus.InfoError. Otherwise 
+
+		// Here you can add code that checks the Entries in the Form
+		// after the user clicks Save. If there are any errors in the
+		// Entry values, return FormStatus.InfoError. Otherwise
 		// return FormStatus.ReadyToProcess.
-		
+
 		return retStatus;
 	}
 
 	/**
-	 * Use this method to process the data that has been 
-	 * specified in the form. 
+	 * Use this method to process the data that has been specified in the form.
 	 * 
 	 * @param actionName
-	 * 		a string representation of the action to perform
+	 *            a string representation of the action to perform
 	 * @return whether the form was processed successfully
 	 */
 	@Override
 	public FormStatus process(String actionName) {
 		FormStatus retStatus = FormStatus.ReadyToProcess;
-		
+
 		// This action occurs only when the default processing option is chosen
-		// The default processing option is defined in the last line of the 
+		// The default processing option is defined in the last line of the
 		// setupItemInfo() method defined above.
 		if (actionName == exportString) {
 			IFile outputFile = project.getFile(outputName);
@@ -195,17 +188,17 @@ public class VisualizationCompleteModel extends Model {
 		} else {
 			retStatus = super.process(actionName);
 		}
-		
+
 		return retStatus;
 	}
 
 	/**
-	 * This method is called when loading a new item either via the item 
-	 * creation button or through importing a file associated with this
-	 * item.  It is responsible for setting up the form for user interaction.
-	 *  
+	 * This method is called when loading a new item either via the item
+	 * creation button or through importing a file associated with this item. It
+	 * is responsible for setting up the form for user interaction.
+	 * 
 	 * @param fileName
-	 * 		the file to load
+	 *            the file to load
 	 */
 	@Override
 	public void loadInput(String fileName) {
diff --git a/org.eclipse.ice.item/META-INF/MANIFEST.MF b/org.eclipse.ice.item/META-INF/MANIFEST.MF
index 3877f57c385c0be2b8f171ccf161f915a48804f4..7344ba0b57bcde18804e299c2e300ddb5bf35c76 100644
--- a/org.eclipse.ice.item/META-INF/MANIFEST.MF
+++ b/org.eclipse.ice.item/META-INF/MANIFEST.MF
@@ -23,6 +23,7 @@ Import-Package: com.google.common.collect;version="10.0.1",
  org.eclipse.ice.datastructures.resource,
  org.eclipse.ice.io.serializable,
  org.eclipse.ice.materials,
+ org.eclipse.january.geometry,
  org.eclipse.jface.images,
  org.eclipse.remote.core,
  org.eclipse.remote.core.exception,
@@ -63,7 +64,8 @@ Require-Bundle: org.eclipse.core.resources;bundle-version="3.7.100",
  org.eclipse.core.filesystem;bundle-version="1.3.200",
  org.eclipse.ice.datastructures,
  org.eclipse.e4.core.di;bundle-version="1.5.0",
- javax.ws.rs
+ javax.ws.rs,
+ org.eclipse.eavp.geometry.view.model;bundle-version="0.1.0"
 Service-Component: OSGi-INF/*.xml
 Meta-Persistence: META-INF/persistence.xml
 JPA-PersistenceUnits: org.eclipse.ice.item
diff --git a/org.eclipse.ice.item/src/org/eclipse/ice/item/geometry/GeometryEditor.java b/org.eclipse.ice.item/src/org/eclipse/ice/item/geometry/GeometryEditor.java
index 5392953165221b23d3a9011c08e53e45f1dbdb05..fbf94c5477b4819a82bb4f15e81777b09fcf30a0 100644
--- a/org.eclipse.ice.item/src/org/eclipse/ice/item/geometry/GeometryEditor.java
+++ b/org.eclipse.ice.item/src/org/eclipse/ice/item/geometry/GeometryEditor.java
@@ -15,13 +15,11 @@ package org.eclipse.ice.item.geometry;
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.eclipse.core.resources.IProject;
-import org.eclipse.eavp.viz.modeling.base.BasicView;
-import org.eclipse.eavp.viz.modeling.ShapeController;
-import org.eclipse.eavp.viz.modeling.Shape;
 import org.eclipse.ice.datastructures.form.Form;
 import org.eclipse.ice.datastructures.form.GeometryComponent;
 import org.eclipse.ice.item.Item;
 import org.eclipse.ice.item.ItemType;
+import org.eclipse.january.geometry.GeometryFactory;
 
 /**
  * <p>
@@ -95,8 +93,7 @@ public class GeometryEditor extends Item {
 		// Create a GeometryComponent to hold the Geometry
 		GeometryComponent geometryComp = new GeometryComponent();
 
-		geometryComp.setGeometry(
-				new ShapeController(new Shape(), new BasicView()));
+		geometryComp.setGeometry(GeometryFactory.eINSTANCE.createGeometry());
 		geometryComp.setName("Geometry Data");
 		geometryComp.setId(1);
 		geometryComp.setDescription(getDescription());
diff --git a/org.eclipse.ice.product/ice.product_WINDOWS.launch b/org.eclipse.ice.product/ice.product_WINDOWS.launch
index f55b99a330687c658949aa8f568249875f3eb377..bc373a35895fd10572f87060c4323bbbddd7bffc 100644
--- a/org.eclipse.ice.product/ice.product_WINDOWS.launch
+++ b/org.eclipse.ice.product/ice.product_WINDOWS.launch
@@ -22,8 +22,8 @@
 <stringAttribute key="pde.version" value="3.3"/>
 <stringAttribute key="product" value="org.eclipse.platform.ide"/>
 <stringAttribute key="productFile" value="/org.eclipse.ice.repository/ice.product"/>
-<stringAttribute key="selected_target_plugins" value="ca.odell.glazedlists@default:default,ch.qos.logback.classic@default:default,ch.qos.logback.core@default:default,ch.qos.logback.slf4j@default:false,com.google.gson@default:default,com.google.guava@default:default,com.ibm.icu@default:default,com.jcraft.jsch@default:default,com.spotify.docker-client.shaded@default:default,com.sun.jersey@default:default,gov.lbnl.visit.swt@default:default,javaewah@default:default,javax.annotation@default:default,javax.el@default:default,javax.inject@default:default,javax.servlet.jsp@default:default,javax.servlet@default:default,javax.ws.rs@default:default,javax.xml@default:default,net.sourceforge.lpg.lpgjavaruntime@default:default,org.apache.ant@default:default,org.apache.batik.css@default:default,org.apache.batik.util.gui@default:default,org.apache.batik.util@default:default,org.apache.commons.beanutils@default:default,org.apache.commons.codec@default:default,org.apache.commons.collections@default:default,org.apache.commons.io@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.logging*1.0.4.v201101211617@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.apache.commons.math@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.apache.log4j@default:default,org.apache.lucene.analysis@default:default,org.apache.lucene.core@default:default,org.apache.xerces@default:default,org.apache.xml.resolver@default:default,org.apache.xml.serializer@default:default,org.eclipse.ant.core@default:default,org.eclipse.ant.launching@default:default,org.eclipse.ant.ui@default:default,org.eclipse.cdt.autotools.core@default:default,org.eclipse.cdt.autotools.ui@default:default,org.eclipse.cdt.codan.checkers.ui@default:default,org.eclipse.cdt.codan.checkers@default:default,org.eclipse.cdt.codan.core.cxx@default:default,org.eclipse.cdt.codan.core@default:default,org.eclipse.cdt.codan.ui.cxx@default:default,org.eclipse.cdt.codan.ui@default:default,org.eclipse.cdt.core.lrparser@default:default,org.eclipse.cdt.core.native@default:default,org.eclipse.cdt.core.parser.upc@default:default,org.eclipse.cdt.core.win32.x86_64@default:false,org.eclipse.cdt.core.win32@default:false,org.eclipse.cdt.core@default:default,org.eclipse.cdt.debug.core@default:default,org.eclipse.cdt.debug.mi.core@default:default,org.eclipse.cdt.debug.mi.ui@default:default,org.eclipse.cdt.debug.ui@default:default,org.eclipse.cdt.doc.user@default:default,org.eclipse.cdt.gdb.ui@default:default,org.eclipse.cdt.gdb@default:default,org.eclipse.cdt.launch@default:default,org.eclipse.cdt.make.core@default:default,org.eclipse.cdt.make.ui@default:default,org.eclipse.cdt.managedbuilder.core@default:default,org.eclipse.cdt.managedbuilder.gnu.ui@default:default,org.eclipse.cdt.managedbuilder.ui@default:default,org.eclipse.cdt.remote.core@default:default,org.eclipse.cdt.ui@default:default,org.eclipse.cdt@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare.win32@default:default,org.eclipse.compare@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.java7@default:false,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86_64@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources.win32.x86_64@default:false,org.eclipse.core.resources@default:true,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.debug.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.draw2d@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.ease.help@default:default,org.eclipse.ease.lang.javascript.rhino.debugger@default:default,org.eclipse.ease.lang.javascript.rhino@default:default,org.eclipse.ease.lang.javascript.ui@default:default,org.eclipse.ease.lang.javascript@default:default,org.eclipse.ease.lang.python@default:default,org.eclipse.ease.modules.charting@default:default,org.eclipse.ease.modules.help@default:default,org.eclipse.ease.modules.platform@default:default,org.eclipse.ease.modules.team.svn@default:default,org.eclipse.ease.ui.scripts@default:default,org.eclipse.ease.ui@default:default,org.eclipse.ease@default:default,org.eclipse.eavp.viz.datastructures@default:default,org.eclipse.eavp.viz.modeling@default:default,org.eclipse.eavp.viz.service.geometry@default:default,org.eclipse.eavp.viz.service.javafx.geometry@default:true,org.eclipse.eavp.viz.service.javafx.mesh@default:true,org.eclipse.eavp.viz.service.javafx@default:default,org.eclipse.eavp.viz.service.mesh@default:default,org.eclipse.eavp.viz.service.paraview.web@default:default,org.eclipse.eavp.viz.service.paraview@default:true,org.eclipse.eavp.viz.service.visit@default:true,org.eclipse.eavp.viz.service@default:true,org.eclipse.eavp.viz@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf@default:default,org.eclipse.egit.core@default:default,org.eclipse.egit.github.core@default:default,org.eclipse.egit.ui@default:default,org.eclipse.egit@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.epp.mpc.core@default:default,org.eclipse.epp.mpc.help.ui@default:default,org.eclipse.epp.mpc.ui@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.http.jetty@default:true,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.launcher.win32.win32.x86_64@default:false,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.discovery.compatibility@default:default,org.eclipse.equinox.p2.discovery@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.p2.transport.ecf@default:default,org.eclipse.equinox.p2.ui.discovery@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security.win32.x86_64@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.servletbridge@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.util@default:default,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.fx.javafx@default:true,org.eclipse.fx.osgi@default:false,org.eclipse.gef@default:default,org.eclipse.help.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.jem.util@default:default,org.eclipse.jetty.continuation@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.jgit@default:default,org.eclipse.jsch.core@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.m2e.archetype.common@default:default,org.eclipse.m2e.core.ui@default:default,org.eclipse.m2e.core@default:default,org.eclipse.m2e.maven.indexer@default:default,org.eclipse.m2e.maven.runtime.slf4j.simple@default:default,org.eclipse.m2e.maven.runtime@default:default,org.eclipse.m2e.model.edit@default:default,org.eclipse.m2e.workspace.cli@default:default,org.eclipse.nebula.visualization.widgets@default:default,org.eclipse.nebula.visualization.xygraph@default:default,org.eclipse.nebula.widgets.nattable.core@default:default,org.eclipse.nebula.widgets.nattable.extension.glazedlists@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.pde.api.tools.ui@default:default,org.eclipse.pde.api.tools@default:default,org.eclipse.pde.build@default:default,org.eclipse.pde.core@default:default,org.eclipse.pde.doc.user@default:default,org.eclipse.pde.ds.core@default:default,org.eclipse.pde.ds.ui@default:default,org.eclipse.pde.junit.runtime@default:default,org.eclipse.pde.launching@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.pde.ua.core@default:default,org.eclipse.pde.ua.ui@default:default,org.eclipse.pde.ui.templates@default:default,org.eclipse.pde.ui@default:default,org.eclipse.pde@default:default,org.eclipse.photran.cdtinterface@default:default,org.eclipse.photran.core.vpg@default:default,org.eclipse.photran.core@default:default,org.eclipse.photran.ui@default:default,org.eclipse.platform@default:default,org.eclipse.ptp.aix@default:false,org.eclipse.ptp.cdt.compilers.core@default:default,org.eclipse.ptp.core@default:default,org.eclipse.ptp.debug.core@default:default,org.eclipse.ptp.debug.sdm.core@default:default,org.eclipse.ptp.debug.sdm.ui@default:default,org.eclipse.ptp.debug.sdm@default:default,org.eclipse.ptp.debug.ui@default:default,org.eclipse.ptp.doc.user@default:default,org.eclipse.ptp.ems.core@default:default,org.eclipse.ptp.ems.ui@default:default,org.eclipse.ptp.etfw.doc.user@default:default,org.eclipse.ptp.etfw.feedback.perfsuite.doc.user@default:default,org.eclipse.ptp.etfw.feedback.perfsuite@default:default,org.eclipse.ptp.etfw.feedback@default:default,org.eclipse.ptp.etfw.jaxb@default:default,org.eclipse.ptp.etfw.launch@default:default,org.eclipse.ptp.etfw.parallel@default:default,org.eclipse.ptp.etfw.tau.papiselect@default:default,org.eclipse.ptp.etfw.tau.perfdmf@default:default,org.eclipse.ptp.etfw.tau.selinst@default:default,org.eclipse.ptp.etfw.tau.selinstfort@default:default,org.eclipse.ptp.etfw.tau.ui@default:default,org.eclipse.ptp.etfw.tau@default:default,org.eclipse.ptp.etfw.toolopts@default:default,org.eclipse.ptp.etfw@default:default,org.eclipse.ptp.gem.help@default:default,org.eclipse.ptp.gem@default:default,org.eclipse.ptp.launch@default:default,org.eclipse.ptp.macosx@default:false,org.eclipse.ptp.pldt.common@default:default,org.eclipse.ptp.pldt.doc.user@default:default,org.eclipse.ptp.pldt.mpi.analysis.cdt@default:default,org.eclipse.ptp.pldt.mpi.analysis@default:default,org.eclipse.ptp.pldt.mpi.core@default:default,org.eclipse.ptp.pldt.mpi.fortran@default:default,org.eclipse.ptp.pldt.openacc.fortran@default:default,org.eclipse.ptp.pldt.openacc@default:default,org.eclipse.ptp.pldt.openmp.analysis@default:default,org.eclipse.ptp.pldt.openmp.core@default:default,org.eclipse.ptp.pldt.openmp.fortran@default:default,org.eclipse.ptp.pldt.openmp.ui.pv@default:default,org.eclipse.ptp.pldt.openshmem@default:default,org.eclipse.ptp.pldt.upc@default:default,org.eclipse.ptp.pldt.wizards@default:default,org.eclipse.ptp.proxy.protocol@default:default,org.eclipse.ptp.proxy@default:default,org.eclipse.ptp.rdt.sync.cdt.core@default:default,org.eclipse.ptp.rdt.sync.cdt.ui@default:default,org.eclipse.ptp.rdt.sync.core@default:default,org.eclipse.ptp.rdt.sync.fortran.ui@default:default,org.eclipse.ptp.rdt.sync.git.core@default:default,org.eclipse.ptp.rdt.sync.git.ui@default:default,org.eclipse.ptp.rdt.sync.ui@default:default,org.eclipse.ptp.remote.server.core@default:default,org.eclipse.ptp.remote.terminal@default:default,org.eclipse.ptp.rm.ibm.ll.doc.user@default:default,org.eclipse.ptp.rm.ibm.ll.ui@default:default,org.eclipse.ptp.rm.ibm.pe.doc.user@default:default,org.eclipse.ptp.rm.ibm.pe.ui@default:default,org.eclipse.ptp.rm.ibm.platform.lsf.doc.user@default:default,org.eclipse.ptp.rm.ibm.platform.lsf.ui@default:default,org.eclipse.ptp.rm.jaxb.configs@default:default,org.eclipse.ptp.rm.jaxb.contrib@default:default,org.eclipse.ptp.rm.jaxb.control.core@default:default,org.eclipse.ptp.rm.jaxb.control.ui@default:default,org.eclipse.ptp.rm.jaxb.core@default:default,org.eclipse.ptp.rm.jaxb.doc.user@default:default,org.eclipse.ptp.rm.jaxb.ui@default:default,org.eclipse.ptp.rm.lml.core@default:default,org.eclipse.ptp.rm.lml.da.server@default:default,org.eclipse.ptp.rm.lml.da@default:default,org.eclipse.ptp.rm.lml.monitor.core@default:default,org.eclipse.ptp.rm.lml.monitor.ui@default:default,org.eclipse.ptp.rm.lml.ui@default:default,org.eclipse.ptp.rm.slurm.help@default:default,org.eclipse.ptp.ui@default:default,org.eclipse.ptp.utils@default:default,org.eclipse.ptp@default:default,org.eclipse.rcp@default:default,org.eclipse.remote.core@default:default,org.eclipse.remote.jsch.core@default:default,org.eclipse.remote.jsch.ui@default:default,org.eclipse.remote.ui@default:default,org.eclipse.search@default:default,org.eclipse.swt.win32.win32.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.swtbot.ant.junit@default:false,org.eclipse.swtbot.eclipse.core@default:default,org.eclipse.swtbot.eclipse.finder@default:default,org.eclipse.swtbot.eclipse.gef.finder@default:default,org.eclipse.swtbot.forms.finder@default:default,org.eclipse.swtbot.go@default:default,org.eclipse.swtbot.junit4_x@default:default,org.eclipse.swtbot.swt.finder@default:default,org.eclipse.team.core@default:default,org.eclipse.team.svn.core@default:default,org.eclipse.team.svn.ui@default:default,org.eclipse.team.svn@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.tm.terminal.connector.remote@default:default,org.eclipse.tm.terminal.control@default:default,org.eclipse.tm.terminal.view.core@default:default,org.eclipse.tm.terminal.view.ui@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.console@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:true,org.eclipse.ui@default:default,org.eclipse.update.configurator@3:true,org.eclipse.wst.common.core@default:default,org.eclipse.wst.common.emf@default:default,org.eclipse.wst.common.environment@default:default,org.eclipse.wst.common.frameworks.ui@default:default,org.eclipse.wst.common.frameworks@default:default,org.eclipse.wst.common.project.facet.core@default:default,org.eclipse.wst.common.ui@default:default,org.eclipse.wst.common.uriresolver@default:default,org.eclipse.wst.jsdt.core@default:default,org.eclipse.wst.jsdt.manipulation@default:default,org.eclipse.wst.jsdt.ui@default:default,org.eclipse.wst.sse.core@default:default,org.eclipse.wst.sse.ui@default:default,org.eclipse.wst.validation.ui@default:default,org.eclipse.wst.validation@default:default,org.eclipse.wst.xml.core@default:default,org.eclipse.wst.xml.ui@default:default,org.eclipse.wst.xsd.core@default:default,org.eclipse.wst.xsd.ui@default:default,org.eclipse.xsd.edit@default:default,org.eclipse.xsd@default:default,org.hamcrest.core@default:default,org.hamcrest.library@default:default,org.junit@default:default,org.mozilla.javascript@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default,org.slf4j.api@default:default,org.slf4j.impl.log4j12@default:false,org.tukaani.xz@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil@default:default,org.w3c.dom.svg@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.ice.caebat.batml@default:true,org.eclipse.ice.client.compatibility@default:default,org.eclipse.ice.client.rcp@default:true,org.eclipse.ice.client.widgets.moose@default:default,org.eclipse.ice.client.widgets@default:true,org.eclipse.ice.client@default:default,org.eclipse.ice.core@default:default,org.eclipse.ice.datastructures@default:true,org.eclipse.ice.demo@default:true,org.eclipse.ice.developer@default:default,org.eclipse.ice.filesimulation@default:true,org.eclipse.ice.io@default:true,org.eclipse.ice.item@default:true,org.eclipse.ice.materials.ui@default:true,org.eclipse.ice.materials@default:true,org.eclipse.ice.mesh@default:true,org.eclipse.ice.nek5000@default:true,org.eclipse.ice.persistence.xml@default:true,org.eclipse.ice.proteus@default:true,org.eclipse.ice.reactor.plant@default:true,org.eclipse.ice.reflectivity.ui@default:true,org.eclipse.ice.reflectivity@default:true,org.eclipse.ice.vibe@default:true"/>
+<stringAttribute key="selected_target_plugins" value="ca.odell.glazedlists@default:default,ch.qos.logback.classic@default:default,ch.qos.logback.core@default:default,ch.qos.logback.slf4j@default:false,com.google.gson@default:default,com.google.guava@default:default,com.google.inject@default:default,com.ibm.icu@default:default,com.jcraft.jsch@default:default,com.spotify.docker-client.shaded@default:default,com.sun.jersey@default:default,gov.lbnl.visit.swt@default:default,javaewah@default:default,javax.annotation@default:default,javax.el@default:default,javax.inject@default:default,javax.servlet.jsp@default:default,javax.servlet@default:default,javax.ws.rs@default:default,javax.xml@default:default,net.sourceforge.lpg.lpgjavaruntime@default:default,org.antlr.runtime*3.2.0.v201101311130@default:default,org.apache.ant@default:default,org.apache.batik.css*1.6.0.v201011041432@default:default,org.apache.batik.css*1.7.0.v201011041433@default:default,org.apache.batik.util*1.6.0.v201011041432@default:default,org.apache.batik.util*1.7.0.v201011041433@default:default,org.apache.batik.util.gui*1.6.0.v201011041432@default:default,org.apache.batik.util.gui*1.7.0.v200903091627@default:default,org.apache.commons.beanutils@default:default,org.apache.commons.codec@default:default,org.apache.commons.collections@default:default,org.apache.commons.io@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.logging*1.0.4.v201101211617@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.apache.commons.math@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.apache.log4j@default:default,org.apache.lucene.analysis@default:default,org.apache.lucene.core@default:default,org.apache.xerces@default:default,org.apache.xml.resolver@default:default,org.apache.xml.serializer@default:default,org.eclipse.ant.core@default:default,org.eclipse.ant.launching@default:default,org.eclipse.ant.ui@default:default,org.eclipse.cdt.autotools.core@default:default,org.eclipse.cdt.autotools.ui@default:default,org.eclipse.cdt.codan.checkers.ui@default:default,org.eclipse.cdt.codan.checkers@default:default,org.eclipse.cdt.codan.core.cxx@default:default,org.eclipse.cdt.codan.core@default:default,org.eclipse.cdt.codan.ui.cxx@default:default,org.eclipse.cdt.codan.ui@default:default,org.eclipse.cdt.core.lrparser@default:default,org.eclipse.cdt.core.native@default:default,org.eclipse.cdt.core.parser.upc@default:default,org.eclipse.cdt.core.win32.x86_64@default:false,org.eclipse.cdt.core.win32@default:false,org.eclipse.cdt.core@default:default,org.eclipse.cdt.debug.core@default:default,org.eclipse.cdt.debug.mi.core@default:default,org.eclipse.cdt.debug.mi.ui@default:default,org.eclipse.cdt.debug.ui@default:default,org.eclipse.cdt.doc.user@default:default,org.eclipse.cdt.gdb.ui@default:default,org.eclipse.cdt.gdb@default:default,org.eclipse.cdt.launch@default:default,org.eclipse.cdt.make.core@default:default,org.eclipse.cdt.make.ui@default:default,org.eclipse.cdt.managedbuilder.core@default:default,org.eclipse.cdt.managedbuilder.gnu.ui@default:default,org.eclipse.cdt.managedbuilder.ui@default:default,org.eclipse.cdt.remote.core@default:default,org.eclipse.cdt.ui@default:default,org.eclipse.cdt@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare.win32@default:default,org.eclipse.compare@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.java7@default:false,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86_64@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources.win32.x86_64@default:false,org.eclipse.core.resources@default:true,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.debug.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.draw2d@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.ease.help@default:default,org.eclipse.ease.lang.javascript.rhino.debugger@default:default,org.eclipse.ease.lang.javascript.rhino@default:default,org.eclipse.ease.lang.javascript.ui@default:default,org.eclipse.ease.lang.javascript@default:default,org.eclipse.ease.lang.python@default:default,org.eclipse.ease.modules.charting@default:default,org.eclipse.ease.modules.help@default:default,org.eclipse.ease.modules.platform@default:default,org.eclipse.ease.modules.team.svn@default:default,org.eclipse.ease.ui.scripts@default:default,org.eclipse.ease.ui@default:default,org.eclipse.ease@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf@default:default,org.eclipse.egit.core@default:default,org.eclipse.egit.github.core@default:default,org.eclipse.egit.ui@default:default,org.eclipse.egit@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.epp.mpc.core@default:default,org.eclipse.epp.mpc.help.ui@default:default,org.eclipse.epp.mpc.ui@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.http.jetty@default:true,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.launcher.win32.win32.x86_64@default:false,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.discovery.compatibility@default:default,org.eclipse.equinox.p2.discovery@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.p2.transport.ecf@default:default,org.eclipse.equinox.p2.ui.discovery@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security.win32.x86_64@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.servletbridge@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.util@default:default,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.fx.javafx@default:true,org.eclipse.fx.osgi@default:false,org.eclipse.gef@default:default,org.eclipse.help.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.jdt@default:default,org.eclipse.jem.util@default:default,org.eclipse.jetty.continuation@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.jgit@default:default,org.eclipse.jsch.core@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.m2e.archetype.common@default:default,org.eclipse.m2e.core.ui@default:default,org.eclipse.m2e.core@default:default,org.eclipse.m2e.maven.indexer@default:default,org.eclipse.m2e.maven.runtime.slf4j.simple@default:default,org.eclipse.m2e.maven.runtime@default:default,org.eclipse.m2e.model.edit@default:default,org.eclipse.m2e.workspace.cli@default:default,org.eclipse.nebula.visualization.widgets@default:default,org.eclipse.nebula.visualization.xygraph@default:default,org.eclipse.nebula.widgets.nattable.core@default:default,org.eclipse.nebula.widgets.nattable.extension.glazedlists@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.pde.api.tools.ui@default:default,org.eclipse.pde.api.tools@default:default,org.eclipse.pde.build@default:default,org.eclipse.pde.core@default:default,org.eclipse.pde.doc.user@default:default,org.eclipse.pde.ds.core@default:default,org.eclipse.pde.ds.ui@default:default,org.eclipse.pde.junit.runtime@default:default,org.eclipse.pde.launching@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.pde.ua.core@default:default,org.eclipse.pde.ua.ui@default:default,org.eclipse.pde.ui.templates@default:default,org.eclipse.pde.ui@default:default,org.eclipse.pde@default:default,org.eclipse.photran.cdtinterface@default:default,org.eclipse.photran.core.vpg@default:default,org.eclipse.photran.core@default:default,org.eclipse.photran.ui@default:default,org.eclipse.platform@default:default,org.eclipse.ptp.aix@default:false,org.eclipse.ptp.cdt.compilers.core@default:default,org.eclipse.ptp.core@default:default,org.eclipse.ptp.debug.core@default:default,org.eclipse.ptp.debug.sdm.core@default:default,org.eclipse.ptp.debug.sdm.ui@default:default,org.eclipse.ptp.debug.sdm@default:default,org.eclipse.ptp.debug.ui@default:default,org.eclipse.ptp.doc.user@default:default,org.eclipse.ptp.ems.core@default:default,org.eclipse.ptp.ems.ui@default:default,org.eclipse.ptp.etfw.doc.user@default:default,org.eclipse.ptp.etfw.feedback.perfsuite.doc.user@default:default,org.eclipse.ptp.etfw.feedback.perfsuite@default:default,org.eclipse.ptp.etfw.feedback@default:default,org.eclipse.ptp.etfw.jaxb@default:default,org.eclipse.ptp.etfw.launch@default:default,org.eclipse.ptp.etfw.parallel@default:default,org.eclipse.ptp.etfw.tau.papiselect@default:default,org.eclipse.ptp.etfw.tau.perfdmf@default:default,org.eclipse.ptp.etfw.tau.selinst@default:default,org.eclipse.ptp.etfw.tau.selinstfort@default:default,org.eclipse.ptp.etfw.tau.ui@default:default,org.eclipse.ptp.etfw.tau@default:default,org.eclipse.ptp.etfw.toolopts@default:default,org.eclipse.ptp.etfw@default:default,org.eclipse.ptp.gem.help@default:default,org.eclipse.ptp.gem@default:default,org.eclipse.ptp.launch@default:default,org.eclipse.ptp.macosx@default:false,org.eclipse.ptp.pldt.common@default:default,org.eclipse.ptp.pldt.doc.user@default:default,org.eclipse.ptp.pldt.mpi.analysis.cdt@default:default,org.eclipse.ptp.pldt.mpi.analysis@default:default,org.eclipse.ptp.pldt.mpi.core@default:default,org.eclipse.ptp.pldt.mpi.fortran@default:default,org.eclipse.ptp.pldt.openacc.fortran@default:default,org.eclipse.ptp.pldt.openacc@default:default,org.eclipse.ptp.pldt.openmp.analysis@default:default,org.eclipse.ptp.pldt.openmp.core@default:default,org.eclipse.ptp.pldt.openmp.fortran@default:default,org.eclipse.ptp.pldt.openmp.ui.pv@default:default,org.eclipse.ptp.pldt.openshmem@default:default,org.eclipse.ptp.pldt.upc@default:default,org.eclipse.ptp.pldt.wizards@default:default,org.eclipse.ptp.proxy.protocol@default:default,org.eclipse.ptp.proxy@default:default,org.eclipse.ptp.rdt.sync.cdt.core@default:default,org.eclipse.ptp.rdt.sync.cdt.ui@default:default,org.eclipse.ptp.rdt.sync.core@default:default,org.eclipse.ptp.rdt.sync.fortran.ui@default:default,org.eclipse.ptp.rdt.sync.git.core@default:default,org.eclipse.ptp.rdt.sync.git.ui@default:default,org.eclipse.ptp.rdt.sync.ui@default:default,org.eclipse.ptp.remote.server.core@default:default,org.eclipse.ptp.remote.terminal@default:default,org.eclipse.ptp.rm.ibm.ll.doc.user@default:default,org.eclipse.ptp.rm.ibm.ll.ui@default:default,org.eclipse.ptp.rm.ibm.pe.doc.user@default:default,org.eclipse.ptp.rm.ibm.pe.ui@default:default,org.eclipse.ptp.rm.ibm.platform.lsf.doc.user@default:default,org.eclipse.ptp.rm.ibm.platform.lsf.ui@default:default,org.eclipse.ptp.rm.jaxb.configs@default:default,org.eclipse.ptp.rm.jaxb.contrib@default:default,org.eclipse.ptp.rm.jaxb.control.core@default:default,org.eclipse.ptp.rm.jaxb.control.ui@default:default,org.eclipse.ptp.rm.jaxb.core@default:default,org.eclipse.ptp.rm.jaxb.doc.user@default:default,org.eclipse.ptp.rm.jaxb.ui@default:default,org.eclipse.ptp.rm.lml.core@default:default,org.eclipse.ptp.rm.lml.da.server@default:default,org.eclipse.ptp.rm.lml.da@default:default,org.eclipse.ptp.rm.lml.monitor.core@default:default,org.eclipse.ptp.rm.lml.monitor.ui@default:default,org.eclipse.ptp.rm.lml.ui@default:default,org.eclipse.ptp.rm.slurm.help@default:default,org.eclipse.ptp.ui@default:default,org.eclipse.ptp.utils@default:default,org.eclipse.ptp@default:default,org.eclipse.rcp@default:default,org.eclipse.remote.core@default:default,org.eclipse.remote.jsch.core@default:default,org.eclipse.remote.jsch.ui@default:default,org.eclipse.remote.ui@default:default,org.eclipse.search@default:default,org.eclipse.swt.win32.win32.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.swtbot.ant.junit@default:false,org.eclipse.swtbot.eclipse.core@default:default,org.eclipse.swtbot.eclipse.finder@default:default,org.eclipse.swtbot.eclipse.gef.finder@default:default,org.eclipse.swtbot.forms.finder@default:default,org.eclipse.swtbot.go@default:default,org.eclipse.swtbot.junit4_x@default:default,org.eclipse.swtbot.swt.finder@default:default,org.eclipse.team.core@default:default,org.eclipse.team.svn.core@default:default,org.eclipse.team.svn.ui@default:default,org.eclipse.team.svn@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.tm.terminal.connector.remote@default:default,org.eclipse.tm.terminal.control@default:default,org.eclipse.tm.terminal.view.core@default:default,org.eclipse.tm.terminal.view.ui@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.console@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:true,org.eclipse.ui@default:default,org.eclipse.update.configurator@3:true,org.eclipse.wst.common.core@default:default,org.eclipse.wst.common.emf@default:default,org.eclipse.wst.common.environment@default:default,org.eclipse.wst.common.frameworks.ui@default:default,org.eclipse.wst.common.frameworks@default:default,org.eclipse.wst.common.project.facet.core@default:default,org.eclipse.wst.common.ui@default:default,org.eclipse.wst.common.uriresolver@default:default,org.eclipse.wst.jsdt.core@default:default,org.eclipse.wst.jsdt.manipulation@default:default,org.eclipse.wst.jsdt.ui@default:default,org.eclipse.wst.sse.core@default:default,org.eclipse.wst.sse.ui@default:default,org.eclipse.wst.validation.ui@default:default,org.eclipse.wst.validation@default:default,org.eclipse.wst.xml.core@default:default,org.eclipse.wst.xml.ui@default:default,org.eclipse.wst.xsd.core@default:default,org.eclipse.wst.xsd.ui@default:default,org.eclipse.xsd.edit@default:default,org.eclipse.xsd@default:default,org.eclipse.xtend.lib.macro@default:default,org.eclipse.xtend.lib@default:default,org.eclipse.xtext.smap@default:default,org.eclipse.xtext.util@default:default,org.eclipse.xtext.xbase.lib@default:default,org.eclipse.xtext@default:default,org.hamcrest.core@default:default,org.hamcrest.library@default:default,org.junit@default:default,org.mozilla.javascript@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default,org.slf4j.api@default:default,org.slf4j.impl.log4j12@default:false,org.tukaani.xz@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil@default:default,org.w3c.dom.svg@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.eavp.geometry.view.javafx@default:true,org.eclipse.eavp.geometry.view.model@default:true,org.eclipse.eavp.viz.datastructures@default:true,org.eclipse.eavp.viz.modeling@default:true,org.eclipse.eavp.viz.service.geometry@default:true,org.eclipse.eavp.viz.service.javafx.geometry@default:true,org.eclipse.eavp.viz.service.javafx.mesh@default:true,org.eclipse.eavp.viz.service.javafx@default:true,org.eclipse.eavp.viz.service.mesh@default:true,org.eclipse.eavp.viz.service.paraview.web@default:true,org.eclipse.eavp.viz.service.paraview@default:true,org.eclipse.eavp.viz.service.visit@default:true,org.eclipse.eavp.viz.service@default:true,org.eclipse.eavp.viz@default:true,org.eclipse.ice.caebat.batml@default:true,org.eclipse.ice.client.compatibility@default:default,org.eclipse.ice.client.rcp@default:true,org.eclipse.ice.client.widgets.moose@default:default,org.eclipse.ice.client.widgets@default:true,org.eclipse.ice.client@default:default,org.eclipse.ice.core@default:default,org.eclipse.ice.datastructures@default:true,org.eclipse.ice.demo@default:true,org.eclipse.ice.developer@default:default,org.eclipse.ice.filesimulation@default:true,org.eclipse.ice.io@default:true,org.eclipse.ice.item@default:true,org.eclipse.ice.materials.ui@default:true,org.eclipse.ice.materials@default:true,org.eclipse.ice.mesh@default:true,org.eclipse.ice.nek5000@default:true,org.eclipse.ice.persistence.xml@default:true,org.eclipse.ice.proteus@default:true,org.eclipse.ice.reactor.plant@default:true,org.eclipse.ice.reflectivity.ui@default:true,org.eclipse.ice.reflectivity@default:true,org.eclipse.ice.vibe@default:true,org.eclipse.january.geometry.model@default:default"/>
 <booleanAttribute key="show_selected_only" value="false"/>
 <booleanAttribute key="tracing" value="false"/>
 <booleanAttribute key="useCustomFeatures" value="false"/>
diff --git a/org.eclipse.ice.reactor.plant/META-INF/MANIFEST.MF b/org.eclipse.ice.reactor.plant/META-INF/MANIFEST.MF
index 182901c75b286a7c8e0e5bb70bebacc2eb9ab5a6..44c2a7daa905207e352ae3604f7349d3903ce41b 100644
--- a/org.eclipse.ice.reactor.plant/META-INF/MANIFEST.MF
+++ b/org.eclipse.ice.reactor.plant/META-INF/MANIFEST.MF
@@ -21,3 +21,4 @@ Import-Package: org.eclipse.eavp.viz.datastructures.VizObject,
 Service-Component: OSGI-INF/PlantIOFactory.xml
 Bundle-Vendor: Oak Ridge National Laboratory
 Export-Package: org.eclipse.ice.reactor.plant
+Require-Bundle: org.eclipse.january.geometry.model
diff --git a/org.eclipse.ice.reactor.plant/src/org/eclipse/ice/reactor/plant/FXPlantCompositeConverter.java b/org.eclipse.ice.reactor.plant/src/org/eclipse/ice/reactor/plant/FXPlantCompositeConverter.java
index 1a2fffe6ea9708a4876e3fa44aa5fddb9ec517a3..13032bf466627146673fcc0d21e77076c19aff81 100644
--- a/org.eclipse.ice.reactor.plant/src/org/eclipse/ice/reactor/plant/FXPlantCompositeConverter.java
+++ b/org.eclipse.ice.reactor.plant/src/org/eclipse/ice/reactor/plant/FXPlantCompositeConverter.java
@@ -10,11 +10,11 @@
  *******************************************************************************/
 package org.eclipse.ice.reactor.plant;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.eclipse.eavp.viz.datastructures.VizObject.IVizUpdateable;
 import org.eclipse.eavp.viz.datastructures.VizObject.IVizUpdateableListener;
-import org.eclipse.eavp.viz.modeling.base.BasicController;
 import org.eclipse.eavp.viz.modeling.base.BasicMesh;
 import org.eclipse.eavp.viz.modeling.base.BasicView;
 import org.eclipse.eavp.viz.modeling.base.IController;
@@ -28,6 +28,8 @@ import org.eclipse.eavp.viz.service.geometry.reactor.ReactorMeshProperty;
 import org.eclipse.eavp.viz.service.javafx.geometry.plant.FXPlantViewControllerProviderFactory;
 import org.eclipse.eavp.viz.service.javafx.geometry.plant.FXPlantViewRootController;
 import org.eclipse.eavp.viz.service.javafx.geometry.plant.IPlantData;
+import org.eclipse.january.geometry.Geometry;
+import org.eclipse.january.geometry.GeometryFactory;
 
 /**
  * A class which interfaces between a PlantComposite and a tree of
@@ -49,7 +51,7 @@ public class FXPlantCompositeConverter
 	/**
 	 * The root of the tree of plant parts converted from the source.
 	 */
-	FXPlantViewRootController output;
+	Geometry output;
 
 	/**
 	 * The PlantComposite containing the RELAP7 representation of the plant's
@@ -73,10 +75,10 @@ public class FXPlantCompositeConverter
 	 * Convert the PlantComposite data structure into an equivalent
 	 * FXPlantViewRootController data structure.
 	 * 
-	 * @return A JavaFX modeling data structure representation fo the plant.
+	 * @return A JavaFX modeling data structure representation for the plant.
 	 */
 	@Override
-	public BasicController getPlant() {
+	public Geometry getPlant() {
 
 		// If the output has not been initialized, create it
 		if (output == null) {
@@ -92,8 +94,7 @@ public class FXPlantCompositeConverter
 	private void refresh() {
 
 		// Create a new root
-		output = new FXPlantViewRootController(new BasicMesh(),
-				new BasicView());
+		output = GeometryFactory.eINSTANCE.createGeometry();
 
 		// Visit each plant component, converting it for the new data structure
 		FXPlantComponentVisitor visitor = new FXPlantComponentVisitor(output);
@@ -107,12 +108,17 @@ public class FXPlantCompositeConverter
 		/**
 		 * The root of the tree of plant parts
 		 */
-		FXPlantViewRootController root;
+		Geometry root;
 
 		/**
-		 * The factory for constructing controllers and views for the meshs.
+		 * The list of all heat exchangers in the plant
 		 */
-		FXPlantViewControllerProviderFactory factory;
+		List<org.eclipse.january.geometry.HeatExchanger> heatExchangerList;
+
+		/**
+		 * The list of all pipes in the plant
+		 */
+		List<org.eclipse.january.geometry.Pipe> pipeList;
 
 		/**
 		 * The default constructor.
@@ -120,33 +126,27 @@ public class FXPlantCompositeConverter
 		 * @param root
 		 *            The root controller all visited objects will be added to.
 		 */
-		public FXPlantComponentVisitor(FXPlantViewRootController root) {
+		public FXPlantComponentVisitor(Geometry root) {
 			this.root = root;
-			factory = new FXPlantViewControllerProviderFactory();
+
+			// Initialize the data members
+			pipeList = new ArrayList<org.eclipse.january.geometry.Pipe>();
+
 		}
 
 		/**
-		 * Find an AbstractController which is under the Pipes or Core Channels
-		 * category with the given ID.
+		 * Find a Pipe with the given ID.
 		 * 
 		 * @param ID
 		 *            The unique ID to search for
-		 * @return The AbstractController with the property Id equal to ID that
-		 *         is under the root's "Pipes" or "Core Channels" category, or
-		 *         null if no such pipe exists.
+		 * @return The Pipe with the Id equal to ID that is in the Root
+		 *         Geometry, or null if no such pipe exists.
 		 */
-		private IController findPipe(Integer ID) {
-
-			// Create a list of all pipes in the plant by combining the pipes
-			// with the core channels
-			List<IController> pipeList = root
-					.getEntitiesFromCategory(ReactorMeshCategory.PIPES);
-			pipeList.addAll(root.getEntitiesFromCategory(
-					ReactorMeshCategory.CORE_CHANNELS));
+		private org.eclipse.january.geometry.Pipe findPipe(Integer ID) {
 
 			// Check the root to see if a pipe with that id already exists
-			for (IController pipe : pipeList) {
-				if (Integer.parseInt(pipe.getProperty(MeshProperty.ID)) == ID) {
+			for (org.eclipse.january.geometry.Pipe pipe : pipeList) {
+				if (pipe.getId() == ID) {
 					return pipe;
 				}
 			}
@@ -157,26 +157,28 @@ public class FXPlantCompositeConverter
 			// Convert the pipe into a modeling data structure
 			source.getPlantComponent(ID).accept(this);
 
-			// Refresh the list of pipes
-			pipeList = root.getEntitiesFromCategory(ReactorMeshCategory.PIPES);
-			pipeList.addAll(root.getEntitiesFromCategory(
-					ReactorMeshCategory.CORE_CHANNELS));
+			// // Refresh the list of pipes
+			// pipeList =
+			// root.getEntitiesFromCategory(ReactorMeshCategory.PIPES);
+			// pipeList.addAll(root.getEntitiesFromCategory(
+			// ReactorMeshCategory.CORE_CHANNELS));
 
 			// Now that the pipe is guaranteed to be in the root, as it
 			// was added when visited, find the pipe with that id and
 			// return it
-			for (IController pipe : pipeList) {
-				if (Integer.parseInt(pipe.getProperty(MeshProperty.ID)) == ID) {
+			for (org.eclipse.january.geometry.Pipe pipe : pipeList) {
+				if (pipe.getId() == ID) {
 					return pipe;
 				}
 			}
 
+			// A pipe that was not in the plant was requested, so return null.
 			return null;
 		}
 
 		/**
-		 * Find an AbstractController which is under the Heat Exchangers
-		 * category with the given ID.
+		 * Find a HeatExchanger which is under the Root Geometry category with
+		 * the given ID.
 		 * 
 		 * @param ID
 		 *            The unique ID to search for
@@ -184,13 +186,13 @@ public class FXPlantCompositeConverter
 		 *         is under the root's "Heat Exchangers" category, or null if no
 		 *         such heat exchanger exists.
 		 */
-		private IController findHeatExchanger(Integer ID) {
+		private org.eclipse.january.geometry.HeatExchanger findHeatExchanger(
+				Integer ID) {
 
 			// Check the root to see if a pipe with that id already exists
-			for (IController pipe : root.getEntitiesFromCategory(
-					ReactorMeshCategory.HEAT_EXCHANGERS)) {
-				if (Integer.parseInt(pipe.getProperty(MeshProperty.ID)) == ID) {
-					return pipe;
+			for (org.eclipse.january.geometry.HeatExchanger exchanger : heatExchangerList) {
+				if (exchanger.getId() == ID) {
+					return exchanger;
 				}
 			}
 
@@ -203,13 +205,15 @@ public class FXPlantCompositeConverter
 			// Now that the pipe is guaranteed to be in the root, as it
 			// was added when visited, find the pipe with that id and
 			// return it
-			for (IController pipe : root.getEntitiesFromCategory(
-					ReactorMeshCategory.HEAT_EXCHANGERS)) {
-				if (Integer.parseInt(pipe.getProperty(MeshProperty.ID)) == ID) {
-					return pipe;
+			// Check the root to see if a pipe with that id already exists
+			for (org.eclipse.january.geometry.HeatExchanger exchanger : heatExchangerList) {
+				if (exchanger.getId() == ID) {
+					return exchanger;
 				}
 			}
 
+			// A heat exchanger that was not in the plant was requested, so
+			// return null
 			return null;
 		}
 
@@ -227,40 +231,28 @@ public class FXPlantCompositeConverter
 		public void visit(org.eclipse.ice.reactor.plant.Junction plantComp) {
 
 			// Create a new junction
-			org.eclipse.eavp.viz.service.geometry.reactor.Junction mesh = new org.eclipse.eavp.viz.service.geometry.reactor.Junction();
-			JunctionController junction = (JunctionController) factory
-					.createProvider(mesh).createController(mesh);
-
-			junction.setProperty(MeshProperty.NAME, plantComp.getName());
+			org.eclipse.january.geometry.Junction junction = GeometryFactory.eINSTANCE.createJunction();
 
-			// Create a list of all pipes in the plant by combining the pipes
-			// with the core channels
-			List<IController> pipeList = root
-					.getEntitiesFromCategory(ReactorMeshCategory.PIPES);
-			pipeList.addAll(root.getEntitiesFromCategory(
-					ReactorMeshCategory.CORE_CHANNELS));
+			junction.setName(plantComp.getName());
 
 			// Add all the input pipes to the junction
 			for (PlantComponent input : plantComp.getInputs()) {
 
 				// Get the pipe with the correct ID
-				IController pipe = findPipe(input.getId());
+				org.eclipse.january.geometry.Pipe pipe = findPipe(input.getId());
 
 				// If the pipe was found, add it
 				if (pipe != null) {
 
 					// Set up this junction as an output to that pipe
-					junction.addEntityToCategory(pipe,
-							ReactorMeshCategory.INPUT);
-					pipe.addEntityToCategory(junction,
-							ReactorMeshCategory.OUTPUT);
+					junction.getInput().add(pipe);
 				}
 
 				// If no pipe was found, it must be a heat exchanger instead
 				else {
 
 					// Find the heat exchanger
-					pipe = findHeatExchanger(input.getId());
+					org.eclipse.january.geometry.HeatExchanger exchanger = findHeatExchanger(input.getId());
 
 					// TODO We currently just check if the input is a
 					// HeatExchanger as primary pipes are added directly as
@@ -277,20 +269,12 @@ public class FXPlantCompositeConverter
 						// Set up this junction as an output to the heat
 						// exchanger's
 						// secondary pipe
-						junction.addEntityToCategory(pipe,
-								ReactorMeshCategory.INPUT);
-						pipe.addEntityToCategory(junction,
-								ReactorMeshCategory.OUTPUT);
+						junction.getInput().add(exchanger.getPipe());
 					}
 
 					else {
-						junction.addEntityToCategory(
-								((HeatExchangerController) pipe)
-										.getPrimaryPipe(),
-								ReactorMeshCategory.INPUT);
-						((HeatExchangerController) pipe).getPrimaryPipe()
-								.addEntityToCategory(junction,
-										ReactorMeshCategory.SECONDARY_OUTPUT);
+						junction.getInput().add(exchanger.getPipe());
+						exchanger.setOutput(junction);
 					}
 
 				}
@@ -301,23 +285,20 @@ public class FXPlantCompositeConverter
 			for (PlantComponent output : plantComp.getOutputs()) {
 
 				// Get the pipe with the correct ID
-				IController pipe = findPipe(output.getId());
+				org.eclipse.january.geometry.Pipe pipe = findPipe(output.getId());
 
 				// If the pipe was found, add it
 				if (pipe != null) {
 
-					// Set up this junction as an output to that pipe
-					junction.addEntityToCategory(pipe,
-							ReactorMeshCategory.OUTPUT);
-					pipe.addEntityToCategory(junction,
-							ReactorMeshCategory.INPUT);
+					// Set up this junction as an input to that pipe
+					junction.getOutput().add(pipe);
 				}
 
 				// If no pipe was found, it must be a heat exchanger instead
 				else {
 
 					// Find the heat exchanger
-					pipe = findHeatExchanger(output.getId());
+					org.eclipse.january.geometry.HeatExchanger exchanger = findHeatExchanger(output.getId());
 
 					// TODO We currently just check if the input is a
 					// HeatExchanger as primary pipes are added directly as
@@ -338,6 +319,7 @@ public class FXPlantCompositeConverter
 								ReactorMeshCategory.OUTPUT);
 						pipe.addEntityToCategory(junction,
 								ReactorMeshCategory.INPUT);
+						junction.get
 					}
 
 					else {
@@ -743,7 +725,7 @@ public class FXPlantCompositeConverter
 		 */
 		public PipeController createPipe(Pipe plantComp) {
 			// Create a new pipe
-			org.eclipse.eavp.viz.service.geometry.reactor.Pipe mesh = new org.eclipse.eavp.viz.service.geometry.reactor.Pipe();
+			org.eclipse.eavp.viz.service.geometry.reactor.PipeRefactor mesh = new org.eclipse.eavp.viz.service.geometry.reactor.PipeRefactor();
 
 			// Set the pipe's properties
 			mesh.setProperty(MeshProperty.ID,
diff --git a/org.eclipse.ice.tablecomponenttester/META-INF/MANIFEST.MF b/org.eclipse.ice.tablecomponenttester/META-INF/MANIFEST.MF
index 96c0d5cb2c4c37dac60f340a31082ffa69626470..beaba08ce72a7157afa024a2c3aa1eef987a3a6e 100644
--- a/org.eclipse.ice.tablecomponenttester/META-INF/MANIFEST.MF
+++ b/org.eclipse.ice.tablecomponenttester/META-INF/MANIFEST.MF
@@ -15,5 +15,6 @@ Import-Package: org.eclipse.eavp.viz.datastructures.VizObject,
  org.eclipse.ice.datastructures.componentVisitor,
  org.eclipse.ice.datastructures.form,
  org.eclipse.ice.datastructures.resource,
- org.eclipse.ice.item
+ org.eclipse.ice.item,
+ org.eclipse.january.geometry
 Bundle-Vendor: Oak Ridge National Laboratory
diff --git a/org.eclipse.ice.tablecomponenttester/src/org/eclipse/ice/tablecomponenttester/TableComponentTester.java b/org.eclipse.ice.tablecomponenttester/src/org/eclipse/ice/tablecomponenttester/TableComponentTester.java
index e5ca43d5a073a622c6e99bc9b195a75afa8ae64d..d1f68851a99014bd7c9ca2a73c4aa0dbcbd7ef0d 100644
--- a/org.eclipse.ice.tablecomponenttester/src/org/eclipse/ice/tablecomponenttester/TableComponentTester.java
+++ b/org.eclipse.ice.tablecomponenttester/src/org/eclipse/ice/tablecomponenttester/TableComponentTester.java
@@ -23,9 +23,6 @@ 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.eavp.viz.modeling.base.BasicView;
-import org.eclipse.eavp.viz.modeling.ShapeController;
-import org.eclipse.eavp.viz.modeling.Shape;
 import org.eclipse.ice.datastructures.entry.ContinuousEntry;
 import org.eclipse.ice.datastructures.entry.DiscreteEntry;
 import org.eclipse.ice.datastructures.entry.IEntry;
@@ -40,6 +37,8 @@ import org.eclipse.ice.datastructures.form.TableComponent;
 import org.eclipse.ice.datastructures.form.TreeComposite;
 import org.eclipse.ice.datastructures.resource.ICEResource;
 import org.eclipse.ice.item.Item;
+import org.eclipse.january.geometry.Geometry;
+import org.eclipse.january.geometry.GeometryFactory;
 
 @XmlRootElement(name = "TableComponentTester")
 public class TableComponentTester extends Item {
@@ -64,7 +63,8 @@ public class TableComponentTester extends Item {
 		ArrayList<String> masterTypeTemplate;
 		IEntry entry1, entry2, entry3, entry4;
 		ResourceComponent resourceComp = new ResourceComponent();
-		TreeComposite parent = null, child1 = null, child2 = null, child3 = null;
+		TreeComposite parent = null, child1 = null, child2 = null,
+				child3 = null;
 
 		// Create the Form
 		form = new Form();
@@ -82,7 +82,7 @@ public class TableComponentTester extends Item {
 		// Create Entries
 
 		entry1 = new ContinuousEntry();
-		entry1.setAllowedValues(Arrays.asList("0","50"));
+		entry1.setAllowedValues(Arrays.asList("0", "50"));
 		entry1.setDefaultValue("1");
 		entry1.setValue("1");
 		entry1.setName("Generic 1");
@@ -102,7 +102,7 @@ public class TableComponentTester extends Item {
 		entry4.setDefaultValue("9001");
 		entry4.setValue("9001");
 		entry4.setName("Generic 4");
-			
+
 		// Create DataComponents
 		detailsComp1 = new DataComponent();
 		detailsComp2 = new DataComponent();
@@ -152,7 +152,7 @@ public class TableComponentTester extends Item {
 
 		IEntry column1 = new StringEntry();
 		column1.setDefaultValue("hello1");
-		
+
 		IEntry column2 = new DiscreteEntry();
 		column2.setAllowedValues(Arrays.asList("Hello", "World"));
 
@@ -194,10 +194,7 @@ public class TableComponentTester extends Item {
 
 		// ===========================================================================Try
 		// making geometry page
-		Shape geometryModel = new Shape();
-		BasicView geometryView = new BasicView();
-		ShapeController geometryShape = new ShapeController(geometryModel,
-				geometryView);
+		Geometry geometryShape = GeometryFactory.eINSTANCE.createGeometry();
 		GeometryComponent geometryComponent = new GeometryComponent();
 		geometryComponent.setGeometry(geometryShape);
 		geometryComponent.setId(108);
@@ -223,8 +220,8 @@ public class TableComponentTester extends Item {
 					if (resources[i].getType() == IResource.FILE) {
 						IFile file = (IFile) resources[i];
 						// Create resource
-						ICEResource iceResource = new ICEResource(new File(
-								file.getRawLocationURI()));
+						ICEResource iceResource = new ICEResource(
+								new File(file.getRawLocationURI()));
 						iceResource.setId(i);
 						iceResource.setName("File " + i);
 						iceResource.setPath(file.getLocationURI());