[jboss-svn-commits] JBL Code SVN: r29045 - in labs/jbossrules/trunk/drools-guvnor: src/main/java/net/sf/webdav and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Aug 25 08:22:29 EDT 2009


Author: Rikkola
Date: 2009-08-25 08:22:28 -0400 (Tue, 25 Aug 2009)
New Revision: 29045

Removed:
   labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/LocalFileSystemStore.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/MethodExecutor.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/MimeTyper.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/ResourceLocks.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/WebDavServletBean.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/WebdavStatus.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/WebdavStore.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/exceptions/
   labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/fromcatalina/
   labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/methods/
Modified:
   labs/jbossrules/trunk/drools-guvnor/pom.xml
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/files/WebDAVImpl.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/files/WebdavServlet.java
   labs/jbossrules/trunk/drools-guvnor/src/main/webapp/org.drools.guvnor.Guvnor-aux/org.drools.guvnor.client.rpc.RepositoryService.rpc.log
   labs/jbossrules/trunk/drools-guvnor/src/main/webapp/org.drools.guvnor.Guvnor-aux/org.drools.guvnor.client.rpc.SecurityService.rpc.log
   labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/WebDAVImplTest.java
Log:
GUVNOR-188 : Update webdav library with latest version

Modified: labs/jbossrules/trunk/drools-guvnor/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/pom.xml	2009-08-25 10:12:16 UTC (rev 29044)
+++ labs/jbossrules/trunk/drools-guvnor/pom.xml	2009-08-25 12:22:28 UTC (rev 29045)
@@ -181,6 +181,12 @@
     	<version>1.6.2</version>
 	</dependency> 
     
+    <dependency>
+	    <groupId>net.sf.webdav-servlet</groupId>
+	    <artifactId>webdav-servlet</artifactId>
+	    <version>2.0</version>
+	</dependency> 
+    
     <!-- jackrabbit (this really should come from repository, not sure why not)
     <dependency>
       <groupId>org.apache.jackrabbit</groupId>

Deleted: labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/LocalFileSystemStore.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/LocalFileSystemStore.java	2009-08-25 10:12:16 UTC (rev 29044)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/LocalFileSystemStore.java	2009-08-25 12:22:28 UTC (rev 29045)
@@ -1,233 +0,0 @@
-/*
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package net.sf.webdav;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.security.Principal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import net.sf.webdav.exceptions.WebdavException;
-
-/**
- * Reference Implementation of WebdavStore
- * 
- * @author joa
- * @author re
- */
-public class LocalFileSystemStore implements WebdavStore {
-
-    private static org.slf4j.Logger log = org.slf4j.LoggerFactory
-	    .getLogger(LocalFileSystemStore.class);
-
-    private static int BUF_SIZE = 50000;
-
-    private File root = null;
-
-    public LocalFileSystemStore(File root) {
-	this.root = root;
-    }
-
-    public void begin(Principal principal) throws WebdavException {
-	log.trace("LocalFileSystemStore.begin()");
-	if (!root.exists()) {
-	    if (!root.mkdirs()) {
-		throw new WebdavException("root path: "
-			+ root.getAbsolutePath()
-			+ " does not exist and could not be created");
-	    }
-	}
-    }
-
-    public void checkAuthentication() throws SecurityException {
-	log.trace("LocalFileSystemStore.checkAuthentication()");
-	// do nothing
-
-    }
-
-    public void commit() throws WebdavException {
-	// do nothing
-	log.trace("LocalFileSystemStore.commit()");
-    }
-
-    public void rollback() throws WebdavException {
-	// do nothing
-	log.trace("LocalFileSystemStore.rollback()");
-
-    }
-
-    public boolean objectExists(String uri) throws WebdavException {
-	File file = new File(root, uri);
-	log.trace("LocalFileSystemStore.objectExists(" + uri + ")="
-		+ file.exists());
-	return file.exists();
-    }
-
-    public boolean isFolder(String uri) throws WebdavException {
-	File file = new File(root, uri);
-	log.trace("LocalFileSystemStore.isFolder(" + uri + ")="
-		+ file.isDirectory());
-	return file.isDirectory();
-    }
-
-    public boolean isResource(String uri) throws WebdavException {
-	File file = new File(root, uri);
-	log.trace("LocalFileSystemStore.isResource(" + uri + ") "
-		+ file.isFile());
-	return file.isFile();
-    }
-
-    public void createFolder(String uri) throws WebdavException {
-	log.trace("LocalFileSystemStore.createFolder(" + uri + ")");
-	File file = new File(root, uri);
-	if (!file.mkdir())
-	    throw new WebdavException("cannot create folder: " + uri);
-    }
-
-    public void createResource(String uri) throws WebdavException {
-	log.trace("LocalFileSystemStore.createResource(" + uri + ")");
-	File file = new File(root, uri);
-	try {
-	    if (!file.createNewFile())
-		throw new WebdavException("cannot create file: " + uri);
-	} catch (IOException e) {
-	    log
-		    .error("LocalFileSystemStore.createResource(" + uri
-			    + ") failed");
-	    throw new WebdavException(e);
-	}
-    }
-
-    /**
-     * tries to save the given InputStream to the file at path "uri". content
-     * type and charachter encoding are ignored
-     */
-    public void setResourceContent(String uri, InputStream is,
-	    String contentType, String characterEncoding)
-	    throws WebdavException {
-
-	log.trace("LocalFileSystemStore.setResourceContent(" + uri + ")");
-	File file = new File(root, uri);
-	try {
-	    OutputStream os = new BufferedOutputStream(new FileOutputStream(
-		    file));
-	    try {
-		int read;
-		byte[] copyBuffer = new byte[BUF_SIZE];
-
-		while ((read = is.read(copyBuffer, 0, copyBuffer.length)) != -1) {
-		    os.write(copyBuffer, 0, read);
-		}
-	    } finally {
-		try {
-		    is.close();
-		} finally {
-		    os.close();
-		}
-	    }
-	} catch (IOException e) {
-	    log.error("LocalFileSystemStore.setResourceContent(" + uri
-		    + ") failed");
-	    throw new WebdavException(e);
-	}
-    }
-
-    public Date getLastModified(String uri) throws WebdavException {
-	log.trace("LocalFileSystemStore.getLastModified(" + uri + ")");
-	File file = new File(root, uri);
-	return new Date(file.lastModified());
-    }
-
-    /**
-     * @return the lastModified date of the file, java.io.file does not support
-     *         a creation date
-     */
-    public Date getCreationDate(String uri) throws WebdavException {
-	log.trace("LocalFileSystemStore.getCreationDate(" + uri + ")");
-	// TODO return creation date instead of last modified
-	File file = new File(root, uri);
-	return new Date(file.lastModified());
-    }
-
-    /**
-     * @return a (possibly empty) list of children, or <code>null</code> if
-     *         the uri points to a file
-     */
-    public String[] getChildrenNames(String uri) throws WebdavException {
-	log.trace("LocalFileSystemStore.getChildrenNames(" + uri + ")");
-	File file = new File(root, uri);
-	if (file.isDirectory()) {
-
-	    File[] children = file.listFiles();
-	    List childList = new ArrayList();
-	    for (int i = 0; i < children.length; i++) {
-		String name = children[i].getName();
-		childList.add(name);
-
-	    }
-	    String[] childrenNames = new String[childList.size()];
-	    childrenNames = (String[]) childList.toArray(childrenNames);
-	    return childrenNames;
-	} else {
-	    return null;
-	}
-
-    }
-
-    /**
-     * @return an input stream to the specified resource
-     */
-    public InputStream getResourceContent(String uri) throws WebdavException {
-	log.trace("LocalFileSystemStore.getResourceContent(" + uri + ")");
-	File file = new File(root, uri);
-
-	InputStream in;
-	try {
-	    in = new BufferedInputStream(new FileInputStream(file));
-	} catch (IOException e) {
-	    log.error("LocalFileSystemStore.getResourceContent(" + uri
-		    + ") failed");
-
-	    throw new WebdavException(e);
-	}
-	return in;
-    }
-
-    public long getResourceLength(String uri) throws WebdavException {
-	log.trace("LocalFileSystemStore.getResourceLength(" + uri + ")");
-	File file = new File(root, uri);
-	return file.length();
-    }
-
-    public void removeObject(String uri) throws WebdavException {
-	File file = new File(root, uri);
-	boolean success = file.delete();
-	log.trace("LocalFileSystemStore.removeObject(" + uri + ")=" + success);
-	if (!success) {
-	    throw new WebdavException("cannot delete object: " + uri);
-	}
-
-    }
-
-}

Deleted: labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/MethodExecutor.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/MethodExecutor.java	2009-08-25 10:12:16 UTC (rev 29044)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/MethodExecutor.java	2009-08-25 12:22:28 UTC (rev 29045)
@@ -1,28 +0,0 @@
-/*
- * Copyright 1999,2004 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.webdav;
-
-import java.io.IOException;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-public interface MethodExecutor {
-
-    void execute(HttpServletRequest req, HttpServletResponse resp)
-	    throws IOException;
-
-}

Deleted: labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/MimeTyper.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/MimeTyper.java	2009-08-25 10:12:16 UTC (rev 29044)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/MimeTyper.java	2009-08-25 12:22:28 UTC (rev 29045)
@@ -1,6 +0,0 @@
-package net.sf.webdav;
-
-public interface MimeTyper {
-
-    String getMimeType(String path);
-}

Deleted: labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/ResourceLocks.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/ResourceLocks.java	2009-08-25 10:12:16 UTC (rev 29044)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/ResourceLocks.java	2009-08-25 12:22:28 UTC (rev 29045)
@@ -1,445 +0,0 @@
-/*
- * Copyright 2005-2006 webdav-servlet group.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.sf.webdav;
-
-import java.util.Hashtable;
-
-/**
- * some very simple locking management for concurrent data access, NOT the
- * webdav locking. ( could that be used instead? )
- * 
- * @author re
- */
-public class ResourceLocks {
-
-    /**
-     * after creating this much LockObjects, a cleanup delets unused LockObjects
-     */
-    private final int fCleanupLimit = 100000;
-
-    private int fCleanupCounter = 0;
-
-    /**
-     * keys: path value: LockObject from that path
-     */
-    private Hashtable fLocks = null;
-
-    // REMEMBER TO REMOVE UNUSED LOCKS FROM THE HASHTABLE AS WELL
-
-    private LockObject fRoot = null;
-
-    public ResourceLocks() {
-	this.fLocks = new Hashtable();
-	fRoot = new LockObject("/");
-    }
-
-    /**
-     * trys to lock the resource at "path".
-     * 
-     * 
-     * @param path
-     *                what resource to lock
-     * @param owner
-     *                the owner of the lock
-     * @param exclusive
-     *                if the lock should be exclusive (or shared)
-     * @return true if the resource at path was successfully locked, false if an
-     *         existing lock prevented this
-     * @param depth
-     *                depth
-     */
-    public synchronized boolean lock(String path, String owner,
-	    boolean exclusive, int depth) {
-
-	LockObject lo = generateLockObjects(path);
-	if (lo.checkLocks(exclusive, depth)) {
-	    if (lo.addLockObjectOwner(owner)) {
-		lo.fExclusive = exclusive;
-		return true;
-	    } else {
-		return false;
-	    }
-	} else {
-	    // can not lock
-	    return false;
-	}
-    }
-
-    /**
-     * unlocks all resources at "path" (and all subfolders if existing)<p/>
-     * that have the same owner
-     * 
-     * @param path
-     *                what resource to unlock
-     * @param owner
-     *                who wants to unlock
-     */
-    public synchronized void unlock(String path, String owner) {
-
-	if (this.fLocks.containsKey(path)) {
-	    LockObject lo = (LockObject) this.fLocks.get(path);
-	    lo.removeLockObjectOwner(owner);
-	    // System.out.println("number of LockObjects in the hashtable: "
-	    // + fLocks.size());
-
-	} else {
-	    // there is no lock at that path. someone tried to unlock it
-	    // anyway. could point to a problem
-	    System.out
-		    .println("net.sf.webdav.ResourceLocks.unlock(): no lock for path "
-			    + path);
-	}
-
-	if (fCleanupCounter > fCleanupLimit) {
-	    fCleanupCounter = 0;
-	    cleanLockObjects(fRoot);
-	}
-    }
-
-    /**
-     * generates LockObjects for the resource at path and its parent folders.
-     * does not create new LockObjects if they already exist
-     * 
-     * @param path
-     *                path to the (new) LockObject
-     * @return the LockObject for path.
-     */
-    private LockObject generateLockObjects(String path) {
-	if (!this.fLocks.containsKey(path)) {
-	    LockObject returnObject = new LockObject(path);
-	    String parentPath = getParentPath(path);
-	    if (parentPath != null) {
-		LockObject parentLockObject = generateLockObjects(parentPath);
-		parentLockObject.addChild(returnObject);
-		returnObject.fParent = parentLockObject;
-	    }
-
-	    return returnObject;
-	} else {
-	    return (LockObject) this.fLocks.get(path);
-	}
-
-    }
-
-    /**
-     * deletes unused LockObjects and resets the counter. works recursively
-     * starting at the given LockObject
-     * 
-     * @param lo
-     *                lock object
-     * 
-     * @return if cleaned
-     */
-    private boolean cleanLockObjects(LockObject lo) {
-
-	if (lo.fChildren == null) {
-	    if (lo.fOwner == null) {
-		lo.removeLockObject();
-		return true;
-	    } else {
-		return false;
-	    }
-	} else {
-	    boolean canDelete = true;
-	    int limit = lo.fChildren.length;
-	    for (int i = 0; i < limit; i++) {
-		if (!cleanLockObjects(lo.fChildren[i])) {
-		    canDelete = false;
-		} else {
-
-		    // because the deleting shifts the array
-		    i--;
-		    limit--;
-		}
-	    }
-	    if (canDelete) {
-		if (lo.fOwner == null) {
-		    lo.removeLockObject();
-		    return true;
-		} else {
-		    return false;
-		}
-	    } else {
-		return false;
-	    }
-	}
-    }
-
-    /**
-     * creates the parent path from the given path by removing the last '/' and
-     * everything after that
-     * 
-     * @param path
-     *                the path
-     * @return parent path
-     */
-    private String getParentPath(String path) {
-	int slash = path.lastIndexOf('/');
-	if (slash == -1) {
-	    return null;
-	} else {
-	    if (slash == 0) {
-		// return "root" if parent path is empty string
-		return "/";
-	    } else {
-		return path.substring(0, slash);
-	    }
-	}
-    }
-
-    // ----------------------------------------------------------------------------
-
-    /**
-     * a helper class for ResourceLocks, represents the Locks
-     * 
-     * @author re
-     * 
-     */
-    private class LockObject {
-
-	String fPath;
-
-	/**
-	 * owner of the lock. shared locks can have multiple owners. is null if
-	 * no owner is present
-	 */
-	String[] fOwner = null;
-
-	/**
-	 * children of that lock
-	 */
-	LockObject[] fChildren = null;
-
-	LockObject fParent = null;
-
-	/**
-	 * weather the lock is exclusive or not. if owner=null the exclusive
-	 * value doesn't matter
-	 */
-	boolean fExclusive = false;
-
-	/**
-	 * 
-	 * @param path
-	 *                the path to the locked object
-	 */
-	LockObject(String path) {
-	    this.fPath = path;
-	    fLocks.put(path, this);
-
-	    fCleanupCounter++;
-	}
-
-	/**
-	 * adds a new owner to a lock
-	 * 
-	 * @param owner
-	 *                string that represents the owner
-	 * @return true if the owner was added, false otherwise
-	 */
-	boolean addLockObjectOwner(String owner) {
-	    if (this.fOwner == null) {
-		this.fOwner = new String[1];
-	    } else {
-
-		int size = this.fOwner.length;
-		String[] newLockObjectOwner = new String[size + 1];
-
-		// check if the owner is already here (that should actually not
-		// happen)
-		for (int i = 0; i < size; i++) {
-		    if (this.fOwner[i].equals(owner)) {
-			return false;
-		    }
-		}
-
-		System.arraycopy(this.fOwner, 0, newLockObjectOwner, 0, size);
-		this.fOwner = newLockObjectOwner;
-	    }
-
-	    this.fOwner[this.fOwner.length - 1] = owner;
-	    return true;
-	}
-
-	/**
-	 * tries to remove the owner from the lock
-	 * 
-	 * @param owner
-	 *                string that represents the owner
-	 */
-	void removeLockObjectOwner(String owner) {
-	    if (this.fOwner != null) {
-		int size = this.fOwner.length;
-		for (int i = 0; i < size; i++) {
-		    // check every owner if it is the requested one
-		    if (this.fOwner[i].equals(owner)) {
-			// remove the owner
-			String[] newLockObjectOwner = new String[size - 1];
-			for (int i2 = 0; i2 < (size - 1); i2++) {
-			    if (i2 < i) {
-				newLockObjectOwner[i2] = this.fOwner[i2];
-			    } else {
-				newLockObjectOwner[i2] = this.fOwner[i2 + 1];
-			    }
-			}
-			this.fOwner = newLockObjectOwner;
-
-		    }
-		}
-		if (this.fOwner.length == 0) {
-		    this.fOwner = null;
-		}
-	    }
-	}
-
-	/**
-	 * adds a new child lock to this lock
-	 * 
-	 * @param newChild
-	 *                new child
-	 */
-	void addChild(LockObject newChild) {
-	    if (this.fChildren == null) {
-		this.fChildren = new LockObject[0];
-	    }
-	    int size = this.fChildren.length;
-	    LockObject[] newChildren = new LockObject[size + 1];
-	    System.arraycopy(this.fChildren, 0, newChildren, 0, size);
-	    newChildren[size] = newChild;
-	    this.fChildren = newChildren;
-	}
-
-	/**
-	 * deletes this Lock object. assumes that it has no children and no
-	 * owners (does not check this itself)
-	 * 
-	 */
-	void removeLockObject() {
-	    if (this != fRoot) {
-		// removing from tree
-		int size = this.fParent.fChildren.length;
-		for (int i = 0; i < size; i++) {
-		    if (this.fParent.fChildren[i].equals(this)) {
-			LockObject[] newChildren = new LockObject[size - 1];
-			for (int i2 = 0; i2 < (size - 1); i2++) {
-			    if (i2 < i) {
-				newChildren[i2] = this.fParent.fChildren[i2];
-			    } else {
-				newChildren[i2] = this.fParent.fChildren[i2 + 1];
-			    }
-			}
-			if (newChildren.length != 0) {
-			    this.fParent.fChildren = newChildren;
-			} else {
-			    this.fParent.fChildren = null;
-			}
-			break;
-		    }
-		}
-
-		// removing from hashtable
-		fLocks.remove(this.fPath);
-
-		// now the garbage collector has some work to do
-	    }
-	}
-
-	/**
-	 * checks if a lock of the given exclusivity can be placed, only
-	 * considering cildren up to "depth"
-	 * 
-	 * @param exclusive
-	 *                wheather the new lock should be exclusive
-	 * @param depth
-	 *                the depth to which should be checked
-	 * @return true if the lock can be placed
-	 */
-	boolean checkLocks(boolean exclusive, int depth) {
-	    return (checkParents(exclusive) && checkChildren(exclusive, depth));
-
-	}
-
-	/**
-	 * helper of checkLocks(). looks if the parents are locked
-	 * 
-	 * @param exclusive
-	 *                wheather the new lock should be exclusive
-	 * @return true if no locks at the parent path are forbidding a new lock
-	 */
-	private boolean checkParents(boolean exclusive) {
-
-	    if (this.fPath.equals("/")) {
-		return true;
-	    } else {
-
-		if (this.fOwner == null) {
-		    // no owner, checking parents
-		    return this.fParent != null
-			    && this.fParent.checkParents(exclusive);
-		} else {
-		    // there already is a owner
-		    return !(this.fExclusive || exclusive)
-			    && this.fParent.checkParents(exclusive);
-		}
-	    }
-	}
-
-	/**
-	 * helper of checkLocks(). looks if the children are locked
-	 * 
-	 * @param exclusive
-	 *                wheather the new lock should be exclusive
-	 * @return true if no locks at the children paths are forbidding a new
-	 *         lock
-	 * @param depth
-	 *                depth
-	 */
-	private boolean checkChildren(boolean exclusive, int depth) {
-	    if (this.fChildren == null) {
-		// a file
-
-		return this.fOwner == null || !(this.fExclusive || exclusive);
-	    } else {
-		// a folder
-
-		if (this.fOwner == null) {
-		    // no owner, checking children
-
-		    if (depth != 0) {
-			boolean canLock = true;
-			int limit = this.fChildren.length;
-			for (int i = 0; i < limit; i++) {
-			    if (!this.fChildren[i].checkChildren(exclusive,
-				    depth - 1)) {
-				canLock = false;
-			    }
-			}
-			return canLock;
-		    } else {
-			// depth == 0 -> we don't care for children
-			return true;
-		    }
-		} else {
-		    // there already is a owner
-		    return !(this.fExclusive || exclusive);
-		}
-	    }
-
-	}
-
-    }
-}

Deleted: labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/WebDavServletBean.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/WebDavServletBean.java	2009-08-25 10:12:16 UTC (rev 29044)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/WebDavServletBean.java	2009-08-25 12:22:28 UTC (rev 29045)
@@ -1,159 +0,0 @@
-package net.sf.webdav;
-
-import java.io.IOException;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.util.Enumeration;
-import java.util.HashMap;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import net.sf.webdav.exceptions.UnauthenticatedException;
-import net.sf.webdav.exceptions.WebdavException;
-import net.sf.webdav.methods.DoCopy;
-import net.sf.webdav.methods.DoDelete;
-import net.sf.webdav.methods.DoGet;
-import net.sf.webdav.methods.DoHead;
-import net.sf.webdav.methods.DoLock;
-import net.sf.webdav.methods.DoMkcol;
-import net.sf.webdav.methods.DoMove;
-import net.sf.webdav.methods.DoNotImplemented;
-import net.sf.webdav.methods.DoOptions;
-import net.sf.webdav.methods.DoPropfind;
-import net.sf.webdav.methods.DoPut;
-
-public class WebDavServletBean extends HttpServlet {
-
-    private static org.slf4j.Logger log = org.slf4j.LoggerFactory
-	    .getLogger(WebDavServletBean.class);
-
-    private static final boolean readOnly = false;
-    private ResourceLocks resLocks;
-    private WebdavStore store;
-    private HashMap methodMap = new HashMap();
-
-    public WebDavServletBean() {
-	this.resLocks = new ResourceLocks();
-	try {
-	    MessageDigest.getInstance("MD5");
-	} catch (NoSuchAlgorithmException e) {
-	    throw new IllegalStateException();
-	}
-    }
-
-    public void init(WebdavStore store, String dftIndexFile,
-	    String insteadOf404, int nocontentLenghHeaders,
-	    boolean lazyFolderCreationOnPut) throws ServletException {
-
-	this.store = store;
-
-	MimeTyper mimeTyper = new MimeTyper() {
-	    public String getMimeType(String path) {
-		return getServletContext().getMimeType(path);
-	    }
-	};
-
-	register("GET", new DoGet(store, dftIndexFile, insteadOf404, resLocks,
-		mimeTyper, nocontentLenghHeaders));
-	register("HEAD", new DoHead(store, dftIndexFile, insteadOf404,
-		resLocks, mimeTyper, nocontentLenghHeaders));
-	DoDelete doDelete = (DoDelete) register("DELETE", new DoDelete(store,
-		resLocks, readOnly));
-	DoCopy doCopy = (DoCopy) register("COPY", new DoCopy(store, resLocks,
-		doDelete, readOnly));
-	register("LOCK", new DoLock(store, resLocks, readOnly));
-	register("MOVE", new DoMove(resLocks, doDelete, doCopy, readOnly));
-	register("MKCOL", new DoMkcol(store, resLocks, readOnly));
-	register("OPTIONS", new DoOptions(store, resLocks));
-	register("PUT", new DoPut(store, resLocks, readOnly,
-		lazyFolderCreationOnPut));
-	register("PROPFIND", new DoPropfind(store, resLocks, readOnly,
-		mimeTyper));
-	register("PROPPATCH", new DoNotImplemented(readOnly));
-	register("*NO*IMPL*", new DoNotImplemented(readOnly));
-    }
-
-    private MethodExecutor register(String methodName, MethodExecutor method) {
-	methodMap.put(methodName, method);
-	return method;
-    }
-
-    /**
-     * Handles the special WebDAV methods.
-     */
-    protected void service(HttpServletRequest req, HttpServletResponse resp)
-	    throws ServletException, IOException {
-
-	String methodName = req.getMethod();
-
-	debugRequest(methodName, req);
-
-	try {
-	    store.begin(req.getUserPrincipal());
-	    store.checkAuthentication();
-	    resp.setStatus(WebdavStatus.SC_OK);
-
-	    try {
-		MethodExecutor methodExecutor = (MethodExecutor) methodMap
-			.get(methodName);
-		if (methodExecutor == null) {
-		    methodExecutor = (MethodExecutor) methodMap
-			    .get("*NO*IMPL*");
-		}
-		methodExecutor.execute(req, resp);
-
-		store.commit();
-	    } catch (IOException e) {
-		java.io.StringWriter sw = new java.io.StringWriter();
-		java.io.PrintWriter pw = new java.io.PrintWriter(sw);
-		e.printStackTrace(pw);
-		log.error("IOException: " + sw.toString());
-		resp.sendError(WebdavStatus.SC_INTERNAL_SERVER_ERROR);
-		store.rollback();
-		throw new ServletException(e);
-	    }
-
-	} catch (UnauthenticatedException e) {
-	    resp.sendError(WebdavStatus.SC_FORBIDDEN);
-	} catch (WebdavException e) {
-	    java.io.StringWriter sw = new java.io.StringWriter();
-	    java.io.PrintWriter pw = new java.io.PrintWriter(sw);
-	    e.printStackTrace(pw);
-	    log.error("WebdavException: " + sw.toString());
-	    throw new ServletException(e);
-	} catch (Exception e) {
-	    java.io.StringWriter sw = new java.io.StringWriter();
-	    java.io.PrintWriter pw = new java.io.PrintWriter(sw);
-	    e.printStackTrace(pw);
-	    log.error("Exception: " + sw.toString());
-	}
-
-    }
-
-    private void debugRequest(String methodName, HttpServletRequest req) {
-	log.trace("-----------");
-	log.trace("WebdavServlet\n request: methodName = " + methodName);
-	log.trace("time: " + System.currentTimeMillis());
-	log.trace("path: " + req.getRequestURI());
-	log.trace("-----------");
-	Enumeration e = req.getHeaderNames();
-	while (e.hasMoreElements()) {
-	    String s = (String) e.nextElement();
-	    log.trace("header: " + s + " " + req.getHeader(s));
-	}
-	e = req.getAttributeNames();
-	while (e.hasMoreElements()) {
-	    String s = (String) e.nextElement();
-	    log.trace("attribute: " + s + " " + req.getAttribute(s));
-	}
-	e = req.getParameterNames();
-	while (e.hasMoreElements()) {
-	    String s = (String) e.nextElement();
-	    log.trace("parameter: " + s + " " + req.getParameter(s));
-	}
-    }
-
-}

Deleted: labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/WebdavStatus.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/WebdavStatus.java	2009-08-25 10:12:16 UTC (rev 29044)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/WebdavStatus.java	2009-08-25 12:22:28 UTC (rev 29045)
@@ -1,273 +0,0 @@
-package net.sf.webdav;
-
-import java.util.Hashtable;
-
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * Wraps the HttpServletResponse class to abstract the specific protocol used.
- * To support other protocols we would only need to modify this class and the
- * WebDavRetCode classes.
- * 
- * @author Marc Eaddy
- * @version 1.0, 16 Nov 1997
- */
-public class WebdavStatus {
-
-    // ----------------------------------------------------- Instance Variables
-
-    /**
-     * This Hashtable contains the mapping of HTTP and WebDAV status codes to
-     * descriptive text. This is a static variable.
-     */
-    private static Hashtable mapStatusCodes = new Hashtable();
-
-    // ------------------------------------------------------ HTTP Status Codes
-
-    /**
-     * Status code (200) indicating the request succeeded normally.
-     */
-    public static final int SC_OK = HttpServletResponse.SC_OK;
-
-    /**
-     * Status code (201) indicating the request succeeded and created a new
-     * resource on the server.
-     */
-    public static final int SC_CREATED = HttpServletResponse.SC_CREATED;
-
-    /**
-     * Status code (202) indicating that a request was accepted for processing,
-     * but was not completed.
-     */
-    public static final int SC_ACCEPTED = HttpServletResponse.SC_ACCEPTED;
-
-    /**
-     * Status code (204) indicating that the request succeeded but that there
-     * was no new information to return.
-     */
-    public static final int SC_NO_CONTENT = HttpServletResponse.SC_NO_CONTENT;
-
-    /**
-     * Status code (301) indicating that the resource has permanently moved to a
-     * new location, and that future references should use a new URI with their
-     * requests.
-     */
-    public static final int SC_MOVED_PERMANENTLY = HttpServletResponse.SC_MOVED_PERMANENTLY;
-
-    /**
-     * Status code (302) indicating that the resource has temporarily moved to
-     * another location, but that future references should still use the
-     * original URI to access the resource.
-     */
-    public static final int SC_MOVED_TEMPORARILY = HttpServletResponse.SC_MOVED_TEMPORARILY;
-
-    /**
-     * Status code (304) indicating that a conditional GET operation found that
-     * the resource was available and not modified.
-     */
-    public static final int SC_NOT_MODIFIED = HttpServletResponse.SC_NOT_MODIFIED;
-
-    /**
-     * Status code (400) indicating the request sent by the client was
-     * syntactically incorrect.
-     */
-    public static final int SC_BAD_REQUEST = HttpServletResponse.SC_BAD_REQUEST;
-
-    /**
-     * Status code (401) indicating that the request requires HTTP
-     * authentication.
-     */
-    public static final int SC_UNAUTHORIZED = HttpServletResponse.SC_UNAUTHORIZED;
-
-    /**
-     * Status code (403) indicating the server understood the request but
-     * refused to fulfill it.
-     */
-    public static final int SC_FORBIDDEN = HttpServletResponse.SC_FORBIDDEN;
-
-    /**
-     * Status code (404) indicating that the requested resource is not
-     * available.
-     */
-    public static final int SC_NOT_FOUND = HttpServletResponse.SC_NOT_FOUND;
-
-    /**
-     * Status code (500) indicating an error inside the HTTP service which
-     * prevented it from fulfilling the request.
-     */
-    public static final int SC_INTERNAL_SERVER_ERROR = HttpServletResponse.SC_INTERNAL_SERVER_ERROR;
-
-    /**
-     * Status code (501) indicating the HTTP service does not support the
-     * functionality needed to fulfill the request.
-     */
-    public static final int SC_NOT_IMPLEMENTED = HttpServletResponse.SC_NOT_IMPLEMENTED;
-
-    /**
-     * Status code (502) indicating that the HTTP server received an invalid
-     * response from a server it consulted when acting as a proxy or gateway.
-     */
-    public static final int SC_BAD_GATEWAY = HttpServletResponse.SC_BAD_GATEWAY;
-
-    /**
-     * Status code (503) indicating that the HTTP service is temporarily
-     * overloaded, and unable to handle the request.
-     */
-    public static final int SC_SERVICE_UNAVAILABLE = HttpServletResponse.SC_SERVICE_UNAVAILABLE;
-
-    /**
-     * Status code (100) indicating the client may continue with its request.
-     * This interim response is used to inform the client that the initial part
-     * of the request has been received and has not yet been rejected by the
-     * server.
-     */
-    public static final int SC_CONTINUE = 100;
-
-    /**
-     * Status code (405) indicating the method specified is not allowed for the
-     * resource.
-     */
-    public static final int SC_METHOD_NOT_ALLOWED = 405;
-
-    /**
-     * Status code (409) indicating that the request could not be completed due
-     * to a conflict with the current state of the resource.
-     */
-    public static final int SC_CONFLICT = 409;
-
-    /**
-     * Status code (412) indicating the precondition given in one or more of the
-     * request-header fields evaluated to false when it was tested on the
-     * server.
-     */
-    public static final int SC_PRECONDITION_FAILED = 412;
-
-    /**
-     * Status code (413) indicating the server is refusing to process a request
-     * because the request entity is larger than the server is willing or able
-     * to process.
-     */
-    public static final int SC_REQUEST_TOO_LONG = 413;
-
-    /**
-     * Status code (415) indicating the server is refusing to service the
-     * request because the entity of the request is in a format not supported by
-     * the requested resource for the requested method.
-     */
-    public static final int SC_UNSUPPORTED_MEDIA_TYPE = 415;
-
-    // -------------------------------------------- Extended WebDav status code
-
-    /**
-     * Status code (207) indicating that the response requires providing status
-     * for multiple independent operations.
-     */
-    public static final int SC_MULTI_STATUS = 207;
-
-    // This one colides with HTTP 1.1
-    // "207 Parital Update OK"
-
-    /**
-     * Status code (418) indicating the entity body submitted with the PATCH
-     * method was not understood by the resource.
-     */
-    public static final int SC_UNPROCESSABLE_ENTITY = 418;
-
-    // This one colides with HTTP 1.1
-    // "418 Reauthentication Required"
-
-    /**
-     * Status code (419) indicating that the resource does not have sufficient
-     * space to record the state of the resource after the execution of this
-     * method.
-     */
-    public static final int SC_INSUFFICIENT_SPACE_ON_RESOURCE = 419;
-
-    // This one colides with HTTP 1.1
-    // "419 Proxy Reauthentication Required"
-
-    /**
-     * Status code (420) indicating the method was not executed on a particular
-     * resource within its scope because some part of the method's execution
-     * failed causing the entire method to be aborted.
-     */
-    public static final int SC_METHOD_FAILURE = 420;
-
-    /**
-     * Status code (423) indicating the destination resource of a method is
-     * locked, and either the request did not contain a valid Lock-Info header,
-     * or the Lock-Info header identifies a lock held by another principal.
-     */
-    public static final int SC_LOCKED = 423;
-
-    // ------------------------------------------------------------ Initializer
-
-    static {
-	// HTTP 1.0 Status Code
-	addStatusCodeMap(SC_OK, "OK");
-	addStatusCodeMap(SC_CREATED, "Created");
-	addStatusCodeMap(SC_ACCEPTED, "Accepted");
-	addStatusCodeMap(SC_NO_CONTENT, "No Content");
-	addStatusCodeMap(SC_MOVED_PERMANENTLY, "Moved Permanently");
-	addStatusCodeMap(SC_MOVED_TEMPORARILY, "Moved Temporarily");
-	addStatusCodeMap(SC_NOT_MODIFIED, "Not Modified");
-	addStatusCodeMap(SC_BAD_REQUEST, "Bad Request");
-	addStatusCodeMap(SC_UNAUTHORIZED, "Unauthorized");
-	addStatusCodeMap(SC_FORBIDDEN, "Forbidden");
-	addStatusCodeMap(SC_NOT_FOUND, "Not Found");
-	addStatusCodeMap(SC_INTERNAL_SERVER_ERROR, "Internal Server Error");
-	addStatusCodeMap(SC_NOT_IMPLEMENTED, "Not Implemented");
-	addStatusCodeMap(SC_BAD_GATEWAY, "Bad Gateway");
-	addStatusCodeMap(SC_SERVICE_UNAVAILABLE, "Service Unavailable");
-	addStatusCodeMap(SC_CONTINUE, "Continue");
-	addStatusCodeMap(SC_METHOD_NOT_ALLOWED, "Method Not Allowed");
-	addStatusCodeMap(SC_CONFLICT, "Conflict");
-	addStatusCodeMap(SC_PRECONDITION_FAILED, "Precondition Failed");
-	addStatusCodeMap(SC_REQUEST_TOO_LONG, "Request Too Long");
-	addStatusCodeMap(SC_UNSUPPORTED_MEDIA_TYPE, "Unsupported Media Type");
-	// WebDav Status Codes
-	addStatusCodeMap(SC_MULTI_STATUS, "Multi-Status");
-	addStatusCodeMap(SC_UNPROCESSABLE_ENTITY, "Unprocessable Entity");
-	addStatusCodeMap(SC_INSUFFICIENT_SPACE_ON_RESOURCE,
-		"Insufficient Space On Resource");
-	addStatusCodeMap(SC_METHOD_FAILURE, "Method Failure");
-	addStatusCodeMap(SC_LOCKED, "Locked");
-    }
-
-    // --------------------------------------------------------- Public Methods
-
-    /**
-     * Returns the HTTP status text for the HTTP or WebDav status code specified
-     * by looking it up in the static mapping. This is a static function.
-     * 
-     * @param nHttpStatusCode
-     *                [IN] HTTP or WebDAV status code
-     * @return A string with a short descriptive phrase for the HTTP status code
-     *         (e.g., "OK").
-     */
-    public static String getStatusText(int nHttpStatusCode) {
-	Integer intKey = new Integer(nHttpStatusCode);
-
-	if (!mapStatusCodes.containsKey(intKey)) {
-	    return "";
-	} else {
-	    return (String) mapStatusCodes.get(intKey);
-	}
-    }
-
-    // -------------------------------------------------------- Private Methods
-
-    /**
-     * Adds a new status code -> status text mapping. This is a static method
-     * because the mapping is a static variable.
-     * 
-     * @param nKey
-     *                [IN] HTTP or WebDAV status code
-     * @param strVal
-     *                [IN] HTTP status text
-     */
-    private static void addStatusCodeMap(int nKey, String strVal) {
-	mapStatusCodes.put(new Integer(nKey), strVal);
-    }
-
-};

Deleted: labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/WebdavStore.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/WebdavStore.java	2009-08-25 10:12:16 UTC (rev 29044)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/net/sf/webdav/WebdavStore.java	2009-08-25 12:22:28 UTC (rev 29045)
@@ -1,237 +0,0 @@
-/*
- * $Header: /home/ak/dev/webdav-servlet/webdav-servlet/src/main/java/net/sf/webdav/WebdavStore.java,v 1.2 2007-01-07 00:02:22 paul-h Exp $
- * $Revision: 1.2 $
- * $Date: 2007-01-07 00:02:22 $
- *
- * ====================================================================
- *
- * Copyright 2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package net.sf.webdav;
-
-import java.io.InputStream;
-import java.security.Principal;
-import java.util.Date;
-
-import net.sf.webdav.exceptions.WebdavException;
-
-/**
- * Interface for simple implementation of any store for the WebdavServlet
- * <p>
- * based on the BasicWebdavStore from Oliver Zeigermann, that was part of the
- * Webdav Construcktion Kit from slide
- * 
- */
-public interface WebdavStore {
-
-    /**
-     * Indicates that a new request or transaction with this store involved has
-     * been started. The request will be terminated by either {@link #commit()}
-     * or {@link #rollback()}. If only non-read methods have been called, the
-     * request will be terminated by a {@link #commit()}. This method will be
-     * called by (@link WebdavStoreAdapter} at the beginning of each request.
-     * 
-     * 
-     * @param principal
-     *                the principal that started this request or
-     *                <code>null</code> if there is non available
-     * 
-     * @throws WebdavException
-     */
-    void begin(Principal principal);
-
-    /**
-     * Checks if authentication information passed in is valid. If not throws an
-     * exception.
-     * 
-     */
-    void checkAuthentication();
-
-    /**
-     * Indicates that all changes done inside this request shall be made
-     * permanent and any transactions, connections and other temporary resources
-     * shall be terminated.
-     * 
-     * @throws WebdavException
-     *                 if something goes wrong on the store level
-     */
-    void commit();
-
-    /**
-     * Indicates that all changes done inside this request shall be undone and
-     * any transactions, connections and other temporary resources shall be
-     * terminated.
-     * 
-     * @throws WebdavException
-     *                 if something goes wrong on the store level
-     */
-    void rollback();
-
-    /**
-     * Checks if there is an object at the position specified by
-     * <code>uri</code>.
-     * 
-     * @param uri
-     *                URI of the object to check
-     * @return <code>true</code> if the object at <code>uri</code> exists
-     * @throws WebdavException
-     *                 if something goes wrong on the store level
-     */
-    boolean objectExists(String uri);
-
-    /**
-     * Checks if there is an object at the position specified by
-     * <code>uri</code> and if so if it is a folder.
-     * 
-     * @param uri
-     *                URI of the object to check
-     * @return <code>true</code> if the object at <code>uri</code> exists
-     *         and is a folder
-     * @throws WebdavException
-     *                 if something goes wrong on the store level
-     */
-    boolean isFolder(String uri);
-
-    /**
-     * Checks if there is an object at the position specified by
-     * <code>uri</code> and if so if it is a content resource.
-     * 
-     * @param uri
-     *                URI of the object to check
-     * @return <code>true</code> if the object at <code>uri</code> exists
-     *         and is a content resource
-     * @throws WebdavException
-     *                 if something goes wrong on the store level
-     */
-    boolean isResource(String uri);
-
-    /**
-     * Creates a folder at the position specified by <code>folderUri</code>.
-     * 
-     * @param folderUri
-     *                URI of the folder
-     * @throws WebdavException
-     *                 if something goes wrong on the store level
-     */
-    void createFolder(String folderUri);
-
-    /**
-     * Creates a content resource at the position specified by
-     * <code>resourceUri</code>.
-     * 
-     * @param resourceUri
-     *                URI of the content resource
-     * @throws WebdavException
-     *                 if something goes wrong on the store level
-     */
-    void createResource(String resourceUri);
-
-    /**
-     * Sets / stores the content of the resource specified by
-     * <code>resourceUri</code>.
-     * 
-     * @param resourceUri
-     *                URI of the resource where the content will be stored
-     * @param content
-     *                input stream from which the content will be read from
-     * @param contentType
-     *                content type of the resource or <code>null</code> if
-     *                unknown
-     * @param characterEncoding
-     *                character encoding of the resource or <code>null</code>
-     *                if unknown or not applicable
-     * @throws WebdavException
-     *                 if something goes wrong on the store level
-     */
-    void setResourceContent(String resourceUri, InputStream content,
-	    String contentType, String characterEncoding);
-
-    /**
-     * Gets the date of the last modiciation of the object specified by
-     * <code>uri</code>.
-     * 
-     * @param uri
-     *                URI of the object, i.e. content resource or folder
-     * @return date of last modification, <code>null</code> declares this
-     *         value as invalid and asks the adapter to try to set it from the
-     *         properties if possible
-     * @throws WebdavException
-     *                 if something goes wrong on the store level
-     */
-    Date getLastModified(String uri);
-
-    /**
-     * Gets the date of the creation of the object specified by <code>uri</code>.
-     * 
-     * @param uri
-     *                URI of the object, i.e. content resource or folder
-     * @return date of creation, <code>null</code> declares this value as
-     *         invalid and asks the adapter to try to set it from the properties
-     *         if possible
-     * @throws WebdavException
-     *                 if something goes wrong on the store level
-     */
-    Date getCreationDate(String uri);
-
-    /**
-     * Gets the names of the children of the folder specified by
-     * <code>folderUri</code>.
-     * 
-     * @param folderUri
-     *                URI of the folder
-     * @return array containing names of the children or null if it is no folder
-     * @throws WebdavException
-     *                 if something goes wrong on the store level
-     */
-    String[] getChildrenNames(String folderUri);
-
-    /**
-     * Gets the content of the resource specified by <code>resourceUri</code>.
-     * 
-     * @param resourceUri
-     *                URI of the content resource
-     * @return input stream you can read the content of the resource from
-     * @throws WebdavException
-     *                 if something goes wrong on the store level
-     */
-    InputStream getResourceContent(String resourceUri);
-
-    /**
-     * Gets the length of the content resource specified by
-     * <code>resourceUri</code>.
-     * 
-     * @param resourceUri
-     *                URI of the content resource
-     * @return length of the resource in bytes, <code>-1</code> declares this
-     *         value as invalid and asks the adapter to try to set it from the
-     *         properties if possible
-     * @throws WebdavException
-     *                 if something goes wrong on the store level
-     */
-    long getResourceLength(String resourceUri);
-
-    /**
-     * Removes the object specified by <code>uri</code>.
-     * 
-     * @param uri
-     *                URI of the object, i.e. content resource or folder
-     * @throws WebdavException
-     *                 if something goes wrong on the store level
-     */
-    void removeObject(String uri);
-
-}
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/files/WebDAVImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/files/WebDAVImpl.java	2009-08-25 10:12:16 UTC (rev 29044)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/files/WebDAVImpl.java	2009-08-25 12:22:28 UTC (rev 29045)
@@ -13,22 +13,25 @@
 import java.util.Map;
 import java.util.WeakHashMap;
 
-import net.sf.webdav.WebdavStore;
+import net.sf.webdav.ITransaction;
+import net.sf.webdav.IWebdavStore;
+import net.sf.webdav.StoredObject;
 
 import org.apache.commons.io.IOUtils;
 import org.drools.repository.AssetItem;
 import org.drools.repository.PackageItem;
 import org.drools.repository.RulesRepository;
+import org.drools.repository.VersionableItem;
 
-public class WebDAVImpl implements WebdavStore {
+public class WebDAVImpl
+    implements
+    IWebdavStore {
 
+    /** for the rubbish OSX double data (the ._ rubbish) */
+    static Map<String, byte[]>         osxDoubleData = Collections.synchronizedMap( new WeakHashMap<String, byte[]>() );
 
-	/** for the rubbish OSX double data (the ._ rubbish) */
-	static Map<String, byte[]> osxDoubleData = Collections.synchronizedMap(new WeakHashMap<String, byte[]>());
+    final ThreadLocal<RulesRepository> tlRepo        = new ThreadLocal<RulesRepository>();
 
-    final ThreadLocal<RulesRepository> tlRepo = new ThreadLocal<RulesRepository>();
-
-
     public WebDAVImpl(File f) {
 
     }
@@ -37,284 +40,369 @@
     }
 
     public WebDAVImpl(RulesRepository testRepo) {
-        tlRepo.set(testRepo);
+        tlRepo.set( testRepo );
     }
 
     RulesRepository getRepo() {
-    	return tlRepo.get();
+        return tlRepo.get();
     }
 
-    public void begin(Principal pr) {
-    	tlRepo.set(RestAPIServlet.getRepository());
+    public ITransaction begin(final Principal pr) {
+        tlRepo.set( RestAPIServlet.getRepository() );
+
+        return new ITransaction() {
+            public Principal getPrincipal() {
+                return pr;
+            }
+        };
     }
 
-    public void checkAuthentication() throws SecurityException {
+    public void checkAuthentication(ITransaction arg0) {
         //already done
     }
 
-    public void commit()  {
-    	//System.out.println("COMMIT START");
+    public void commit(ITransaction arg0) {
+        //System.out.println("COMMIT START");
         getRepo().save();
-        tlRepo.set(null);
+        tlRepo.set( null );
         //System.out.println("COMMIT END");
     }
 
-    public void createFolder(String uri)  {
+    public void createFolder(ITransaction arg0,
+                             String uri) {
         //System.out.println("creating folder:" + uri);
-        String[] path = getPath(uri);
-        if (path[0].equals("packages")) {
-            if (path.length > 2) {
-                throw new UnsupportedOperationException("Can't nest packages.");
+        String[] path = getPath( uri );
+        if ( path[0].equals( "packages" ) ) {
+            if ( path.length > 2 ) {
+                throw new UnsupportedOperationException( "Can't nest packages." );
             }
             RulesRepository repository = getRepo();
-            if (repository.containsPackage(path[1])) {
-                PackageItem pkg = repository.loadPackage(path[1]);
-                pkg.archiveItem(false);
-                pkg.checkin("<restored by webdav>");
+            if ( repository.containsPackage( path[1] ) ) {
+                PackageItem pkg = repository.loadPackage( path[1] );
+                pkg.archiveItem( false );
+                pkg.checkin( "<restored by webdav>" );
             } else {
-                repository.createPackage(path[1], "<from webdav>");
+                repository.createPackage( path[1],
+                                          "<from webdav>" );
             }
         } else {
-            throw new UnsupportedOperationException("Not able to create folders here...");
+            throw new UnsupportedOperationException( "Not able to create folders here..." );
         }
     }
 
-    public void createResource(String uri) {
+    public void createResource(ITransaction arg0,
+                               String uri) {
         //System.out.println("creating resource:" + uri);
         //for mac OSX, ignore these annoying things
-        if (uri.endsWith(".DS_Store")) return;
-        String[] path = getPath(uri);
-        if (path[0].equals("packages")) {
-            if (path.length > 3) {
-                throw new UnsupportedOperationException("Can't do nested packages.");
+        if ( uri.endsWith( ".DS_Store" ) ) return;
+        String[] path = getPath( uri );
+        if ( path[0].equals( "packages" ) ) {
+            if ( path.length > 3 ) {
+                throw new UnsupportedOperationException( "Can't do nested packages." );
             }
             String packageName = path[1];
-            String[] resource = AssetItem.getAssetNameFromFileName(path[2]);
+            String[] resource = AssetItem.getAssetNameFromFileName( path[2] );
             RulesRepository repository = getRepo();
-            PackageItem pkg = repository.loadPackage(packageName);
+            PackageItem pkg = repository.loadPackage( packageName );
 
             //for mac OSX, ignore these resource fork files
-            if (path[2].startsWith("._")) {
-                this.osxDoubleData.put(uri, null);
+            if ( path[2].startsWith( "._" ) ) {
+                this.osxDoubleData.put( uri,
+                                        null );
                 return;
             }
-            if (pkg.containsAsset(resource[0])) {
+            if ( pkg.containsAsset( resource[0] ) ) {
 
-                AssetItem lazarus = pkg.loadAsset(resource[0]);
-                lazarus.archiveItem(false);
+                AssetItem lazarus = pkg.loadAsset( resource[0] );
+                lazarus.archiveItem( false );
                 //lazarus.checkin("<from webdav>");
             } else {
-                AssetItem asset = pkg.addAsset(resource[0], "");
-                asset.updateFormat(resource[1]);
+                AssetItem asset = pkg.addAsset( resource[0],
+                                                "" );
+                asset.updateFormat( resource[1] );
                 //asset.checkin("<from webdav>");
             }
 
         } else {
-            throw new UnsupportedOperationException("Can't add assets here.");
+            throw new UnsupportedOperationException( "Can't add assets here." );
         }
     }
 
+    public String[] getChildrenNames(ITransaction arg0,
+                                     String uri) {
+        //System.out.println("getChildrenNames :" + uri);
 
-    public String[] getChildrenNames(String uri) {
-    	//System.out.println("getChildrenNames :" + uri);
-
-    	RulesRepository repository = getRepo();
-        String[] path = getPath(uri);
+        RulesRepository repository = getRepo();
+        String[] path = getPath( uri );
         List<String> result = new ArrayList<String>();
-        if (path.length == 0) {
-            return new String[] {"packages", "snapshots"};
+        if ( path.length == 0 ) {
+            return new String[]{"packages", "snapshots"};
         }
-        if (path[0].equals("packages")) {
-            if (path.length > 2) {
+        if ( path[0].equals( "packages" ) ) {
+            if ( path.length > 2 ) {
                 return null;
             }
-            if (path.length == 1) {
-                listPackages(repository, result);
+            if ( path.length == 1 ) {
+                listPackages( repository,
+                              result );
             } else {
-                PackageItem pkg = repository.loadPackage(path[1]);
+                PackageItem pkg = repository.loadPackage( path[1] );
                 Iterator<AssetItem> it = pkg.getAssets();
-                while(it.hasNext()) {
+                while ( it.hasNext() ) {
                     AssetItem asset = it.next();
-                    if (!asset.isArchived()) {
-                        result.add(asset.getName() + "." + asset.getFormat());
+                    if ( !asset.isArchived() ) {
+                        result.add( asset.getName() + "." + asset.getFormat() );
                     }
                 }
             }
 
-        } else if (path[0].equals("snapshots")) {
-        	if (path.length > 3) {
-        		return null;
-        	}
-        	if (path.length == 1) {
-        		listPackages(repository, result);
-        	} else if (path.length == 2){
-        		String[] snaps = repository.listPackageSnapshots(path[1]);
-        		return snaps;
-        	} else if (path.length == 3){
-        		Iterator<AssetItem> it  = repository.loadPackageSnapshot(path[1], path[2]).getAssets();
-        		while(it.hasNext()) {
-        		    AssetItem asset = it.next();
-        		    if (!asset.isArchived()) {
-        		    	result.add(asset.getName() + "." + asset.getFormat());
-        		    }
-        		}
-        	} else {
-        		throw new IllegalArgumentException();
-        	}
+        } else if ( path[0].equals( "snapshots" ) ) {
+            if ( path.length > 3 ) {
+                return null;
+            }
+            if ( path.length == 1 ) {
+                listPackages( repository,
+                              result );
+            } else if ( path.length == 2 ) {
+                String[] snaps = repository.listPackageSnapshots( path[1] );
+                return snaps;
+            } else if ( path.length == 3 ) {
+                Iterator<AssetItem> it = repository.loadPackageSnapshot( path[1],
+                                                                         path[2] ).getAssets();
+                while ( it.hasNext() ) {
+                    AssetItem asset = it.next();
+                    if ( !asset.isArchived() ) {
+                        result.add( asset.getName() + "." + asset.getFormat() );
+                    }
+                }
+            } else {
+                throw new IllegalArgumentException();
+            }
 
         } else {
-        	throw new UnsupportedOperationException("Not a valid path : " + path[0]);
+            throw new UnsupportedOperationException( "Not a valid path : " + path[0] );
         }
-        return result.toArray(new String[result.size()]);
+        return result.toArray( new String[result.size()] );
     }
 
-	private void listPackages(RulesRepository repository, List<String> result) {
-		Iterator<PackageItem> it = repository.listPackages();
-		while(it.hasNext()) {
-		    PackageItem pkg = it.next();
-		    if (!pkg.isArchived()) {
-		        result.add(pkg.getName());
-		    }
-		}
-	}
+    private void listPackages(RulesRepository repository,
+                              List<String> result) {
+        Iterator<PackageItem> it = repository.listPackages();
+        while ( it.hasNext() ) {
+            PackageItem pkg = it.next();
+            if ( !pkg.isArchived() ) {
+                result.add( pkg.getName() );
+            }
+        }
+    }
 
     public Date getCreationDate(String uri) {
-    	//System.out.println("getCreationDate :" + uri);
+        //System.out.println("getCreationDate :" + uri);
 
-    	RulesRepository repository = getRepo();
-        String[] path = getPath(uri);
-        if (path.length < 2) return new Date();
-        if (path[0].equals("packages")) {
-            PackageItem pkg = repository.loadPackage(path[1]);
-            if (path.length == 2) {
+        RulesRepository repository = getRepo();
+        String[] path = getPath( uri );
+        if ( path.length < 2 ) return new Date();
+        if ( path[0].equals( "packages" ) ) {
+            PackageItem pkg = repository.loadPackage( path[1] );
+            if ( path.length == 2 ) {
                 //dealing with package
                 return pkg.getCreatedDate().getTime();
             } else {
                 String fileName = path[2];
-                String assetName = AssetItem.getAssetNameFromFileName(fileName)[0];
-                AssetItem asset = pkg.loadAsset(assetName);
+                String assetName = AssetItem.getAssetNameFromFileName( fileName )[0];
+                AssetItem asset = pkg.loadAsset( assetName );
                 return asset.getCreatedDate().getTime();
             }
-        } else if (path[0].equals("snapshots")){
-            if (path.length == 2) {
-            	return new Date();
-            } else if (path.length == 3) {
-            	return repository.loadPackageSnapshot(path[1], path[2]).getCreatedDate().getTime();
-            } else if (path.length == 4) {
-            	PackageItem pkg = repository.loadPackageSnapshot(path[1], path[2]);
-            	AssetItem asset = pkg.loadAsset(AssetItem.getAssetNameFromFileName(path[3])[0]);
-            	return asset.getCreatedDate().getTime();
+        } else if ( path[0].equals( "snapshots" ) ) {
+            if ( path.length == 2 ) {
+                return new Date();
+            } else if ( path.length == 3 ) {
+                return repository.loadPackageSnapshot( path[1],
+                                                       path[2] ).getCreatedDate().getTime();
+            } else if ( path.length == 4 ) {
+                PackageItem pkg = repository.loadPackageSnapshot( path[1],
+                                                                  path[2] );
+                AssetItem asset = pkg.loadAsset( AssetItem.getAssetNameFromFileName( path[3] )[0] );
+                return asset.getCreatedDate().getTime();
             } else {
-            	throw new UnsupportedOperationException();
+                throw new UnsupportedOperationException();
             }
         } else {
-        	throw new UnsupportedOperationException();
+            throw new UnsupportedOperationException();
         }
     }
 
     public Date getLastModified(String uri) {
-    	//System.out.println("getLastModified :" + uri);
+        //System.out.println("getLastModified :" + uri);
 
-    	RulesRepository repository = getRepo();
-        String[] path = getPath(uri);
-        if (path.length < 2) return new Date();
-        if (path[0].equals("packages")) {
-            PackageItem pkg = repository.loadPackage(path[1]);
-            if (path.length == 2) {
+        RulesRepository repository = getRepo();
+        String[] path = getPath( uri );
+        if ( path.length < 2 ) return new Date();
+        if ( path[0].equals( "packages" ) ) {
+            PackageItem pkg = repository.loadPackage( path[1] );
+            if ( path.length == 2 ) {
                 //dealing with package
                 return pkg.getLastModified().getTime();
             } else {
                 String fileName = path[2];
-                String assetName = AssetItem.getAssetNameFromFileName(fileName)[0];
-                AssetItem asset = pkg.loadAsset(assetName);
+                String assetName = AssetItem.getAssetNameFromFileName( fileName )[0];
+                AssetItem asset = pkg.loadAsset( assetName );
                 return asset.getLastModified().getTime();
             }
-        } else if (path[0].equals("snapshots")){
-            if (path.length == 2) {
-            	return new Date();
-            } else if (path.length == 3) {
-            	return repository.loadPackageSnapshot(path[1], path[2]).getLastModified().getTime();
-            } else if (path.length == 4) {
-            	PackageItem pkg = repository.loadPackageSnapshot(path[1], path[2]);
-            	AssetItem asset = pkg.loadAsset(AssetItem.getAssetNameFromFileName(path[3])[0]);
-            	return asset.getLastModified().getTime();
+        } else if ( path[0].equals( "snapshots" ) ) {
+            if ( path.length == 2 ) {
+                return new Date();
+            } else if ( path.length == 3 ) {
+                return repository.loadPackageSnapshot( path[1],
+                                                       path[2] ).getLastModified().getTime();
+            } else if ( path.length == 4 ) {
+                PackageItem pkg = repository.loadPackageSnapshot( path[1],
+                                                                  path[2] );
+                AssetItem asset = pkg.loadAsset( AssetItem.getAssetNameFromFileName( path[3] )[0] );
+                return asset.getLastModified().getTime();
             } else {
-            	throw new UnsupportedOperationException();
+                throw new UnsupportedOperationException();
             }
         } else {
             throw new UnsupportedOperationException();
         }
     }
 
+    public InputStream getResourceContent(ITransaction arg0,
+                                          String uri) {
+        //System.out.println("get resource content:" + uri);
+        return getContent( uri );
+    }
 
+    public StoredObject getStoredObject(ITransaction arg0,
+                                        String uri) {
+        RulesRepository repository = getRepo();
+        String[] path = getPath( uri );
+        if ( path.length < 2 ) {
+            StoredObject so = new StoredObject();
 
-    public InputStream getResourceContent(String uri) {
-        //System.out.println("get resource content:" + uri);
-        return getContent(uri);
+            so.setCreationDate( new Date() );
+            so.setFolder( isFolder( uri ) );
+            so.setLastModified( new Date() );
+            so.setResourceLength( 0 );
+
+            return so;
+        }
+        if ( path[0].equals( "packages" ) ) {
+            PackageItem pkg = repository.loadPackage( path[1] );
+            if ( path.length == 2 ) {
+                //dealing with package
+                return createStoredObject( uri,
+                                           pkg,
+                                           0 );
+            } else {
+                String fileName = path[2];
+                String assetName = AssetItem.getAssetNameFromFileName( fileName )[0];
+                AssetItem asset = pkg.loadAsset( assetName );
+                return createStoredObject( uri,
+                                           asset,
+                                           asset.getContentLength() );
+            }
+        } else if ( path[0].equals( "snapshots" ) ) {
+            if ( path.length == 3 ) {
+                PackageItem snapshot = repository.loadPackageSnapshot( path[1],
+                                                                       path[2] );
+                AssetItem asset = snapshot.loadAsset( AssetItem.getAssetNameFromFileName( path[2] )[0] );
+                return createStoredObject( uri,
+                                           snapshot,
+                                           asset.getContentLength() );
+            } else if ( path.length == 4 ) {
+                PackageItem pkg = repository.loadPackageSnapshot( path[1],
+                                                                  path[2] );
+                AssetItem asset = pkg.loadAsset( AssetItem.getAssetNameFromFileName( path[3] )[0] );
+                return createStoredObject( uri,
+                                           asset,
+                                           asset.getContentLength() );
+            } else {
+                throw new UnsupportedOperationException();
+            }
+        } else {
+            throw new UnsupportedOperationException();
+        }
     }
 
-	private InputStream getContent(String uri) {
-		RulesRepository repository = getRepo();
-		String[] path = getPath(uri);
-        if (path[0].equals("packages")) {
+    private StoredObject createStoredObject(String uri,
+                                            VersionableItem pi,
+                                            long resourceLength) {
+        StoredObject so = new StoredObject();
+        so.setCreationDate( pi.getCreatedDate().getTime() );
+        so.setFolder( isFolder( uri ) );
+        so.setLastModified( pi.getLastModified().getTime() );
+        so.setResourceLength( resourceLength );
+
+        return so;
+    }
+
+    private InputStream getContent(String uri) {
+        RulesRepository repository = getRepo();
+        String[] path = getPath( uri );
+        if ( path[0].equals( "packages" ) ) {
             String pkg = path[1];
-            String asset = AssetItem.getAssetNameFromFileName(path[2])[0];
-            AssetItem assetItem  = repository.loadPackage(pkg).loadAsset(asset);
-            return getAssetData(assetItem);
-        } else if (path[0].equals("snapshots")) {
-        	String pkg = path[1];
-        	String snap = path[2];
-        	String asset = AssetItem.getAssetNameFromFileName(path[3])[0];
-        	AssetItem assetItem = repository.loadPackageSnapshot(pkg, snap).loadAsset(asset);
-        	return getAssetData(assetItem);
+            String asset = AssetItem.getAssetNameFromFileName( path[2] )[0];
+            AssetItem assetItem = repository.loadPackage( pkg ).loadAsset( asset );
+            return getAssetData( assetItem );
+        } else if ( path[0].equals( "snapshots" ) ) {
+            String pkg = path[1];
+            String snap = path[2];
+            String asset = AssetItem.getAssetNameFromFileName( path[3] )[0];
+            AssetItem assetItem = repository.loadPackageSnapshot( pkg,
+                                                                  snap ).loadAsset( asset );
+            return getAssetData( assetItem );
 
-        }else {
+        } else {
             throw new UnsupportedOperationException();
         }
-	}
+    }
 
-	private InputStream getAssetData(AssetItem assetItem) {
-		if (assetItem.isBinary()) {
-		    return assetItem.getBinaryContentAttachment();
-		} else {
-		    return new ByteArrayInputStream(assetItem.getContent().getBytes());
-		}
-	}
+    private InputStream getAssetData(AssetItem assetItem) {
+        if ( assetItem.isBinary() ) {
+            return assetItem.getBinaryContentAttachment();
+        } else {
+            return new ByteArrayInputStream( assetItem.getContent().getBytes() );
+        }
+    }
 
-    public long getResourceLength(String uri) {
-    	//System.out.println("get resource length :" + uri);
-    	String[] path = getPath(uri);
-    	try {
-    		RulesRepository repo = getRepo();
-    		if (path.length == 3 && path[0].equals("packages")) {
-    			PackageItem pkg = repo.loadPackage(path[1]);
-    			AssetItem asset = pkg.loadAsset(AssetItem.getAssetNameFromFileName(path[2])[0]);
-    			return asset.getContentLength();
-    		} else if (path.length == 4 && path[0].equals("snapshots")) {
-    			PackageItem pkg = repo.loadPackageSnapshot(path[1], path[2]);
-    			AssetItem asset = pkg.loadAsset(AssetItem.getAssetNameFromFileName(path[3])[0]);
-    			return asset.getContentLength();
-    		} else {
-    			return 0;
-    		}
-		} catch (Exception e) {
-			System.err.println("Not able to get content length");
-			return 0;
-		}
+    public long getResourceLength(ITransaction arg0,
+                                  String uri) {
+        //System.out.println("get resource length :" + uri);
+        String[] path = getPath( uri );
+        try {
+            RulesRepository repo = getRepo();
+            if ( path.length == 3 && path[0].equals( "packages" ) ) {
+                PackageItem pkg = repo.loadPackage( path[1] );
+                AssetItem asset = pkg.loadAsset( AssetItem.getAssetNameFromFileName( path[2] )[0] );
+                return asset.getContentLength();
+            } else if ( path.length == 4 && path[0].equals( "snapshots" ) ) {
+                PackageItem pkg = repo.loadPackageSnapshot( path[1],
+                                                            path[2] );
+                AssetItem asset = pkg.loadAsset( AssetItem.getAssetNameFromFileName( path[3] )[0] );
+                return asset.getContentLength();
+            } else {
+                return 0;
+            }
+        } catch ( Exception e ) {
+            System.err.println( "Not able to get content length" );
+            return 0;
+        }
 
     }
 
     public boolean isFolder(String uri) {
-    	//System.out.println("is folder :" + uri);
-    	RulesRepository repository = getRepo();
-        String[] path = getPath(uri);
-        if (path.length == 0) return true;
-        if (path.length == 1 && (path[0].equals("packages") || path[0].equals("snapshots"))) {
+        //System.out.println("is folder :" + uri);
+        RulesRepository repository = getRepo();
+        String[] path = getPath( uri );
+        if ( path.length == 0 ) return true;
+        if ( path.length == 1 && (path[0].equals( "packages" ) || path[0].equals( "snapshots" )) ) {
             return true;
-        } else if (path.length == 2) {
-        	return repository.containsPackage(path[1]);
-        } else if (path.length == 3 && path[0].equals("snapshots")) {
-        	return repository.containsPackage(path[1]);
+        } else if ( path.length == 2 ) {
+            return repository.containsPackage( path[1] );
+        } else if ( path.length == 3 && path[0].equals( "snapshots" ) ) {
+            return repository.containsPackage( path[1] );
         } else {
 
             return false;
@@ -322,178 +410,179 @@
     }
 
     public boolean isResource(String uri) {
-    	RulesRepository repository = getRepo();
-    	//System.out.println("is resource :" + uri);
-    	String[] path = getPath(uri);
-    	if (path.length < 3) return false;
-    	if (!(path[0].equals("packages") || path[0].equals("snapshots"))) return false;
-        if (repository.containsPackage(path[1])) {
-        	if (path[0].equals("packages")) {
-	        	PackageItem pkg = repository.loadPackage(path[1]);
-	        	if (path[2].startsWith("._")) {
-	        		return osxDoubleData.containsKey(uri);
-	        	}
-	        	return pkg.containsAsset(AssetItem.getAssetNameFromFileName(path[2])[0]);
-        	} else {
-        		if (path.length == 4) {
-	        		PackageItem pkg = repository.loadPackageSnapshot(path[1], path[2]);
-	        		return pkg.containsAsset(AssetItem.getAssetNameFromFileName(path[3])[0]);
-        		} else {
-        			return false;
-        		}
-        	}
+        RulesRepository repository = getRepo();
+        //System.out.println("is resource :" + uri);
+        String[] path = getPath( uri );
+        if ( path.length < 3 ) return false;
+        if ( !(path[0].equals( "packages" ) || path[0].equals( "snapshots" )) ) return false;
+        if ( repository.containsPackage( path[1] ) ) {
+            if ( path[0].equals( "packages" ) ) {
+                PackageItem pkg = repository.loadPackage( path[1] );
+                if ( path[2].startsWith( "._" ) ) {
+                    return osxDoubleData.containsKey( uri );
+                }
+                return pkg.containsAsset( AssetItem.getAssetNameFromFileName( path[2] )[0] );
+            } else {
+                if ( path.length == 4 ) {
+                    PackageItem pkg = repository.loadPackageSnapshot( path[1],
+                                                                      path[2] );
+                    return pkg.containsAsset( AssetItem.getAssetNameFromFileName( path[3] )[0] );
+                } else {
+                    return false;
+                }
+            }
         } else {
-        	return false;
+            return false;
         }
     }
 
     public boolean objectExists(String uri) {
-    	if (uri.indexOf(" copy ") > 0) {
-    		throw new IllegalArgumentException("OSX is not capable of copy and pasting without breaking the file extension.");
-    	}
-    	return internalObjectExists(uri);
+        if ( uri.indexOf( " copy " ) > 0 ) {
+            throw new IllegalArgumentException( "OSX is not capable of copy and pasting without breaking the file extension." );
+        }
+        return internalObjectExists( uri );
     }
 
     private boolean internalObjectExists(String uri) {
 
-    	RulesRepository repository = getRepo();
+        RulesRepository repository = getRepo();
         //System.out.println("object exist check :" + uri);
-        if (uri.endsWith(".DS_Store")) return false;
-        String[] path = getPath(uri);
-        if (path.length == 0) return true;
-        if (path.length == 1 && (path[0].equals("packages") || path[0].equals("snapshots"))) {
+        if ( uri.endsWith( ".DS_Store" ) ) return false;
+        String[] path = getPath( uri );
+        if ( path.length == 0 ) return true;
+        if ( path.length == 1 && (path[0].equals( "packages" ) || path[0].equals( "snapshots" )) ) {
             return true;
         } else {
-            if (path.length == 1) return false;
-            if (!repository.containsPackage(path[1])) {
+            if ( path.length == 1 ) return false;
+            if ( !repository.containsPackage( path[1] ) ) {
                 return false;
             }
 
-            if (path[0].equals("packages")) {
-	            if (path.length == 2) {
-	                PackageItem pkg = repository.loadPackage(path[1]);
-	                return !pkg.isArchived();
-	            } else {
-	                PackageItem pkg = repository.loadPackage(path[1]);
-	                if (path[2].startsWith("._")){
-	                	return this.osxDoubleData.containsKey(uri);
-	                }
-	                String assetName = AssetItem.getAssetNameFromFileName(path[2])[0];
+            if ( path[0].equals( "packages" ) ) {
+                if ( path.length == 2 ) {
+                    PackageItem pkg = repository.loadPackage( path[1] );
+                    return !pkg.isArchived();
+                } else {
+                    PackageItem pkg = repository.loadPackage( path[1] );
+                    if ( path[2].startsWith( "._" ) ) {
+                        return this.osxDoubleData.containsKey( uri );
+                    }
+                    String assetName = AssetItem.getAssetNameFromFileName( path[2] )[0];
 
-	                return pkg.containsAsset(assetName) && !pkg.loadAsset(assetName).isArchived();
-	            }
-            } else if (path[0].equals("snapshots")) {
-            	if (path.length == 2) {
-            		return repository.containsPackage(path[1]);
-            	} else if (path.length == 3) {
-            		return repository.containsSnapshot(path[1], path[2]);
-            	} else if (path.length == 4) {
-            		PackageItem pkg = repository.loadPackageSnapshot(path[1], path[2]);
-            		return pkg.containsAsset(AssetItem.getAssetNameFromFileName(path[3])[0]);
-            	} else {
-            		return false;
-            	}
+                    return pkg.containsAsset( assetName ) && !pkg.loadAsset( assetName ).isArchived();
+                }
+            } else if ( path[0].equals( "snapshots" ) ) {
+                if ( path.length == 2 ) {
+                    return repository.containsPackage( path[1] );
+                } else if ( path.length == 3 ) {
+                    return repository.containsSnapshot( path[1],
+                                                        path[2] );
+                } else if ( path.length == 4 ) {
+                    PackageItem pkg = repository.loadPackageSnapshot( path[1],
+                                                                      path[2] );
+                    return pkg.containsAsset( AssetItem.getAssetNameFromFileName( path[3] )[0] );
+                } else {
+                    return false;
+                }
             } else {
-            	throw new IllegalStateException();
+                throw new IllegalStateException();
             }
         }
     }
 
-    public void removeObject(String uri) {
-    	RulesRepository repository = getRepo();
+    public void removeObject(ITransaction arg0,
+                             String uri) {
+        RulesRepository repository = getRepo();
         //System.out.println("remove object:" + uri);
-        String[] path = getPath(uri);
-        if (path.length == 0 || path.length == 1) {
+        String[] path = getPath( uri );
+        if ( path.length == 0 || path.length == 1 ) {
             throw new IllegalArgumentException();
         }
-        if (path[0].equals("packages")) {
+        if ( path[0].equals( "packages" ) ) {
             String packName = path[1];
-            PackageItem pkg = repository.loadPackage(packName);
-            if (path.length == 3) {
+            PackageItem pkg = repository.loadPackage( packName );
+            if ( path.length == 3 ) {
                 //delete asset
-            	if (path[2].startsWith("._")) {
-            		osxDoubleData.remove(uri);
-            		return;
-            	}
-                String asset = AssetItem.getAssetNameFromFileName(path[2])[0];
-                AssetItem item = pkg.loadAsset(asset);
-                item.archiveItem(true);
-                item.checkin("");
+                if ( path[2].startsWith( "._" ) ) {
+                    osxDoubleData.remove( uri );
+                    return;
+                }
+                String asset = AssetItem.getAssetNameFromFileName( path[2] )[0];
+                AssetItem item = pkg.loadAsset( asset );
+                item.archiveItem( true );
+                item.checkin( "" );
             } else {
                 //delete package
-                pkg.archiveItem(true);
-                pkg.checkin("");
+                pkg.archiveItem( true );
+                pkg.checkin( "" );
             }
         } else {
-            throw new IllegalArgumentException("Not allowed to remove this file.");
+            throw new IllegalArgumentException( "Not allowed to remove this file." );
         }
 
     }
 
-    public void rollback() {
-    	//System.out.println("ROLLBACK");
+    public void rollback(ITransaction arg0) {
+        //System.out.println("ROLLBACK");
 
-    	RulesRepository repository = getRepo();
+        RulesRepository repository = getRepo();
         repository.getSession().logout();
     }
 
-    public void setResourceContent(String uri, InputStream content, String contentType, String characterEncoding)  {
-    	RulesRepository repository = getRepo();
+    public long setResourceContent(ITransaction arg0,
+                                   String uri,
+                                   InputStream content,
+                                   String contentType,
+                                   String characterEncoding) {
+        RulesRepository repository = getRepo();
         //System.out.println("set resource content:" + uri);
-        if (uri.endsWith(".DS_Store")) return;
-        String[] path = getPath(uri);
-        if (path[0].equals("packages")) {
-            if (path.length != 3) {
-                throw new IllegalArgumentException("Not a valid resource path " + uri);
+        if ( uri.endsWith( ".DS_Store" ) ) return 0;
+        String[] path = getPath( uri );
+        if ( path[0].equals( "packages" ) ) {
+            if ( path.length != 3 ) {
+                throw new IllegalArgumentException( "Not a valid resource path " + uri );
             }
 
-             String packageName = path[1];
-             if (path[2].startsWith("._")) {
-            	 try {
-					this.osxDoubleData.put(uri, IOUtils.toByteArray(content));
-				} catch (IOException e) {
-					throw new RuntimeException(e);
-				}
-            	 return;
-             }
-             String[] assetName = AssetItem.getAssetNameFromFileName(path[2]);
-             PackageItem pkg = repository.loadPackage(packageName);
-             AssetItem asset = pkg.loadAsset(assetName[0]);
-             asset.updateBinaryContentAttachment(content);
-             //here we could save, or check in, depending on if enough time has passed to justify
-             //a new version. Otherwise we will pollute the version history with lots of trivial versions.
-             //if (shouldCreateNewVersion(asset.getLastModified())) {
-                 asset.checkin("<content from webdav>");
-             //}
+            String packageName = path[1];
+            if ( path[2].startsWith( "._" ) ) {
+                try {
+                    this.osxDoubleData.put( uri,
+                                            IOUtils.toByteArray( content ) );
+                } catch ( IOException e ) {
+                    throw new RuntimeException( e );
+                }
+                return 0;
+            }
+            String[] assetName = AssetItem.getAssetNameFromFileName( path[2] );
+            PackageItem pkg = repository.loadPackage( packageName );
+            AssetItem asset = pkg.loadAsset( assetName[0] );
+            asset.updateBinaryContentAttachment( content );
+            //here we could save, or check in, depending on if enough time has passed to justify
+            //a new version. Otherwise we will pollute the version history with lots of trivial versions.
+            //if (shouldCreateNewVersion(asset.getLastModified())) {
+            asset.checkin( "<content from webdav>" );
+            //}
 
-
         } else {
-            throw new UnsupportedOperationException("Unable to save content to this location.");
+            throw new UnsupportedOperationException( "Unable to save content to this location." );
         }
 
+        return 0;
     }
 
-
-
-
     String[] getPath(String uri) {
-    	if (uri.equals("/")) {
-    		return new String[0];
-    	}
+        if ( uri.equals( "/" ) ) {
+            return new String[0];
+        }
 
-
-        if (uri.endsWith("webdav") || uri.endsWith("webdav/")) {
+        if ( uri.endsWith( "webdav" ) || uri.endsWith( "webdav/" ) ) {
             return new String[0];
         }
-        if (uri.indexOf("webdav") > -1) {
-        	return uri.split("webdav/")[1].split("/");
+        if ( uri.indexOf( "webdav" ) > -1 ) {
+            return uri.split( "webdav/" )[1].split( "/" );
         } else {
-        	return uri.substring(1).split("/");
+            return uri.substring( 1 ).split( "/" );
         }
     }
 
-
-
 }
-
-

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/files/WebdavServlet.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/files/WebdavServlet.java	2009-08-25 10:12:16 UTC (rev 29044)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/files/WebdavServlet.java	2009-08-25 12:22:28 UTC (rev 29045)
@@ -8,8 +8,8 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import net.sf.webdav.IWebdavStore;
 import net.sf.webdav.WebDavServletBean;
-import net.sf.webdav.WebdavStore;
 
 /**
  * Taken from the webdav servlet project. Modified to be more useful.
@@ -20,66 +20,68 @@
  *
  */
 public class WebdavServlet extends WebDavServletBean {
-	private static final long serialVersionUID = 5L;
+    private static final long serialVersionUID = 5L;
 
+    public void init() throws ServletException {
 
-	public void init() throws ServletException {
+        // Parameters from web.xml
+        String clazzName = WebDAVImpl.class.getName();
 
-		// Parameters from web.xml
-		String clazzName = WebDAVImpl.class.getName();
+        File root = new File( "" );// getFileRoot();
 
+        IWebdavStore webdavStore = constructStore( clazzName,
+                                                   root );
 
-		File root = new File("");// getFileRoot();
+        String lazyFolderCreationOnPutValue = getInitParameter( "lazyFolderCreationOnPut" );
+        boolean lazyFolderCreationOnPut = lazyFolderCreationOnPutValue != null && lazyFolderCreationOnPutValue.equals( "1" );
 
-		WebdavStore webdavStore = constructStore(clazzName, root);
+        String dftIndexFile = getInitParameter( "default-index-file" );
+        String insteadOf404 = getInitParameter( "instead-of-404" );
 
-		String lazyFolderCreationOnPutValue = getInitParameter("lazyFolderCreationOnPut");
-		boolean lazyFolderCreationOnPut = lazyFolderCreationOnPutValue != null
-				&& lazyFolderCreationOnPutValue.equals("1");
+        int noContentLengthHeader = 0;
 
-		String dftIndexFile = getInitParameter("default-index-file");
-		String insteadOf404 = getInitParameter("instead-of-404");
+        super.init( webdavStore,
+                    dftIndexFile,
+                    insteadOf404,
+                    noContentLengthHeader,
+                    lazyFolderCreationOnPut );
+    }
 
-		int noContentLengthHeader = 0;
+    @Override
+    protected void service(HttpServletRequest req,
+                           HttpServletResponse resp) throws ServletException,
+                                                    IOException {
+        //love you
+        long time = System.currentTimeMillis();
 
-		super.init(webdavStore, dftIndexFile, insteadOf404,
-				noContentLengthHeader, lazyFolderCreationOnPut);
-	}
-
-	@Override
-	protected void service(HttpServletRequest req, HttpServletResponse resp)
-			throws ServletException, IOException {
-		//love you
-		long time = System.currentTimeMillis();
-
-        String auth = req.getHeader("Authorization");
-        if (!RestAPIServlet.allowUser(auth)) {
-          resp.setHeader("WWW-Authenticate", "BASIC realm=\"users\"");
-          resp.sendError(HttpServletResponse.SC_UNAUTHORIZED);
+        String auth = req.getHeader( "Authorization" );
+        if ( !RestAPIServlet.allowUser( auth ) ) {
+            resp.setHeader( "WWW-Authenticate",
+                            "BASIC realm=\"users\"" );
+            resp.sendError( HttpServletResponse.SC_UNAUTHORIZED );
+        } else {
+            super.service( req,
+                           resp );
         }
-        else {
-    		super.service(req, resp);
-        }
 
         //System.err.println("WebDAV servlet time: " + (System.currentTimeMillis() - time));
-	}
+    }
 
+    protected IWebdavStore constructStore(String clazzName,
+                                          File root) {
+        IWebdavStore webdavStore;
+        try {
+            Class clazz = WebdavServlet.class.getClassLoader().loadClass( clazzName );
 
+            Constructor ctor = clazz.getConstructor( new Class[]{File.class} );
 
-	protected WebdavStore constructStore(String clazzName, File root) {
-		WebdavStore webdavStore;
-		try {
-			Class clazz = WebdavServlet.class.getClassLoader().loadClass(
-					clazzName);
+            webdavStore = (IWebdavStore) ctor.newInstance( new Object[]{root} );
+        } catch ( Exception e ) {
+            e.printStackTrace();
+            throw new RuntimeException( "some problem making store component",
+                                        e );
+        }
+        return webdavStore;
+    }
 
-			Constructor ctor = clazz.getConstructor(new Class[] { File.class });
-
-			webdavStore = (WebdavStore) ctor.newInstance(new Object[] { root });
-		} catch (Exception e) {
-			e.printStackTrace();
-			throw new RuntimeException("some problem making store component", e);
-		}
-		return webdavStore;
-	}
-
 }

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/webapp/org.drools.guvnor.Guvnor-aux/org.drools.guvnor.client.rpc.RepositoryService.rpc.log
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/webapp/org.drools.guvnor.Guvnor-aux/org.drools.guvnor.client.rpc.RepositoryService.rpc.log	2009-08-25 10:12:16 UTC (rev 29044)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/webapp/org.drools.guvnor.Guvnor-aux/org.drools.guvnor.client.rpc.RepositoryService.rpc.log	2009-08-25 12:22:28 UTC (rev 29045)
@@ -1,11 +1,15 @@
-Reachable types computed on: Fri Aug 21 17:37:53 EEST 2009
+Reachable types computed on: Tue Aug 25 15:14:06 EEST 2009
 com.google.gwt.i18n.client.impl.ConstantMap
    Serialization status
       Not serializable
    Path
       'com.google.gwt.i18n.client.impl.ConstantMap' is reachable as a subtype of type 'interface java.util.Map<java.lang.String, java.lang.String>'
-      'java.util.Map<java.lang.String, java.lang.String>' is reachable from field 'fieldTypes' of type 'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine'
-      'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Map<java.lang.String, java.lang.String>' is reachable from field 'parameters' of type 'org.drools.guvnor.client.rulefloweditor.HumanTaskTransferNode'
+      'org.drools.guvnor.client.rulefloweditor.HumanTaskTransferNode' is reachable as a subtype of type 'class org.drools.guvnor.client.rulefloweditor.TransferNode'
+      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
+      'java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable from field 'nodes' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
+      'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -39,7 +43,11 @@
    Serialization status
       Instantiable
    Path
-      'com.google.gwt.user.client.ui.MultiWordSuggestOracle.MultiWordSuggestion' is reachable as a subtype of type 'interface com.google.gwt.user.client.rpc.IsSerializable'
+      'com.google.gwt.user.client.ui.MultiWordSuggestOracle.MultiWordSuggestion' is reachable as a subtype of type 'interface com.google.gwt.user.client.ui.SuggestOracle.Suggestion'
+      'com.google.gwt.user.client.ui.SuggestOracle.Suggestion' is reachable from type argument 0 of type 'java.util.Stack<E>'
+      'java.util.Stack<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable as a subtype of type 'interface java.util.Collection<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>'
+      'java.util.Collection<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable from field 'suggestions' of type 'com.google.gwt.user.client.ui.SuggestOracle.Response'
+      'com.google.gwt.user.client.ui.SuggestOracle.Response' is reachable as a subtype of type 'interface com.google.gwt.user.client.rpc.IsSerializable'
       'com.google.gwt.user.client.rpc.IsSerializable' is reachable from field 'payload' of type 'org.drools.guvnor.client.rpc.ValidatedResponse'
       'org.drools.guvnor.client.rpc.ValidatedResponse' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.ValidatedResponse'
       Started from 'org.drools.guvnor.client.rpc.ValidatedResponse'
@@ -92,7 +100,15 @@
    Path
       'java.lang.Boolean' is reachable as a subtype of type 'class java.lang.Boolean'
       'java.lang.Boolean' is reachable from field 'successResult' of type 'org.drools.guvnor.client.modeldriven.testing.VerifyField'
-      'org.drools.guvnor.client.modeldriven.testing.VerifyField' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.testing.VerifyField' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.testing.VerifyField'
+      'org.drools.guvnor.client.modeldriven.testing.VerifyField' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable from field 'fieldValues' of type 'org.drools.guvnor.client.modeldriven.testing.VerifyFact'
+      'org.drools.guvnor.client.modeldriven.testing.VerifyFact' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.testing.Fixture'
+      'org.drools.guvnor.client.modeldriven.testing.Fixture' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable from field 'fixtures' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -113,9 +129,8 @@
       'java.lang.Integer' is reachable as a subtype of type 'class java.lang.Integer'
       'java.lang.Integer' is reachable from field 'expectedCount' of type 'org.drools.guvnor.client.modeldriven.testing.VerifyRuleFired'
       'org.drools.guvnor.client.modeldriven.testing.VerifyRuleFired' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.testing.Fixture'
-      Type 'org.drools.guvnor.client.modeldriven.testing.Fixture' is reachable from array type 'org.drools.guvnor.client.modeldriven.testing.Fixture[]'
-      'org.drools.guvnor.client.modeldriven.testing.Fixture' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
+      'org.drools.guvnor.client.modeldriven.testing.Fixture' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
       'java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable from field 'fixtures' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
       'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -141,9 +156,8 @@
       'java.lang.Long' is reachable as a subtype of type 'class java.lang.Long'
       'java.lang.Long' is reachable from field 'executionTimeResult' of type 'org.drools.guvnor.client.modeldriven.testing.ExecutionTrace'
       'org.drools.guvnor.client.modeldriven.testing.ExecutionTrace' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.testing.Fixture'
-      Type 'org.drools.guvnor.client.modeldriven.testing.Fixture' is reachable from array type 'org.drools.guvnor.client.modeldriven.testing.Fixture[]'
-      'org.drools.guvnor.client.modeldriven.testing.Fixture' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
+      'org.drools.guvnor.client.modeldriven.testing.Fixture' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
       'java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable from field 'fixtures' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
       'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -158,9 +172,8 @@
       'java.lang.Long' is reachable as a subtype of type 'class java.lang.Long'
       'java.lang.Long' is reachable from field 'executionTimeResult' of type 'org.drools.guvnor.client.modeldriven.testing.ExecutionTrace'
       'org.drools.guvnor.client.modeldriven.testing.ExecutionTrace' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.testing.Fixture'
-      Type 'org.drools.guvnor.client.modeldriven.testing.Fixture' is reachable from array type 'org.drools.guvnor.client.modeldriven.testing.Fixture[]'
-      'org.drools.guvnor.client.modeldriven.testing.Fixture' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
+      'org.drools.guvnor.client.modeldriven.testing.Fixture' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
       'java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable from field 'fixtures' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
       'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -253,24 +266,24 @@
       'java.util.ArrayList<org.drools.guvnor.client.rpc.PushResponse>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rpc.PushResponse>'
       Started from 'java.util.List<org.drools.guvnor.client.rpc.PushResponse>'
 
-java.util.ArrayList<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>
+java.util.ArrayList<java.lang.Integer>
    Serialization status
       Instantiable
    Path
-      'java.util.ArrayList<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable as a subtype of type 'interface java.util.Collection<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>'
-      'java.util.Collection<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable from field 'suggestions' of type 'com.google.gwt.user.client.ui.SuggestOracle.Response'
-      'com.google.gwt.user.client.ui.SuggestOracle.Response' is reachable as a subtype of type 'interface com.google.gwt.user.client.rpc.IsSerializable'
+      'java.util.ArrayList<java.lang.Integer>' is reachable as a subtype of type 'interface java.util.List<java.lang.Integer>'
+      'java.util.List<java.lang.Integer>' is reachable from field 'list' of type 'org.drools.guvnor.client.security.Capabilities'
+      'org.drools.guvnor.client.security.Capabilities' is reachable as a subtype of type 'interface com.google.gwt.user.client.rpc.IsSerializable'
       'com.google.gwt.user.client.rpc.IsSerializable' is reachable from field 'payload' of type 'org.drools.guvnor.client.rpc.ValidatedResponse'
       'org.drools.guvnor.client.rpc.ValidatedResponse' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.ValidatedResponse'
       Started from 'org.drools.guvnor.client.rpc.ValidatedResponse'
 
-java.util.ArrayList<java.lang.Integer>
+java.util.ArrayList<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>
    Serialization status
       Instantiable
    Path
-      'java.util.ArrayList<java.lang.Integer>' is reachable as a subtype of type 'interface java.util.List<java.lang.Integer>'
-      'java.util.List<java.lang.Integer>' is reachable from field 'list' of type 'org.drools.guvnor.client.security.Capabilities'
-      'org.drools.guvnor.client.security.Capabilities' is reachable as a subtype of type 'interface com.google.gwt.user.client.rpc.IsSerializable'
+      'java.util.ArrayList<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable as a subtype of type 'interface java.util.Collection<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>'
+      'java.util.Collection<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable from field 'suggestions' of type 'com.google.gwt.user.client.ui.SuggestOracle.Response'
+      'com.google.gwt.user.client.ui.SuggestOracle.Response' is reachable as a subtype of type 'interface com.google.gwt.user.client.rpc.IsSerializable'
       'com.google.gwt.user.client.rpc.IsSerializable' is reachable from field 'payload' of type 'org.drools.guvnor.client.rpc.ValidatedResponse'
       'org.drools.guvnor.client.rpc.ValidatedResponse' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.ValidatedResponse'
       Started from 'org.drools.guvnor.client.rpc.ValidatedResponse'
@@ -284,103 +297,90 @@
       'org.drools.guvnor.client.rpc.SingleScenarioResult' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.SingleScenarioResult'
       Started from 'org.drools.guvnor.client.rpc.SingleScenarioResult'
 
-java.util.ArrayList<org.drools.guvnor.client.modeldriven.dt.ActionCol>
+java.util.ArrayList<org.drools.guvnor.client.modeldriven.MethodInfo>
    Serialization status
       Instantiable
    Path
-      'java.util.ArrayList<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable from field 'actionCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
-      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.ArrayList<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable from type argument 1 of type 'java.util.LinkedHashMap<K, V>'
+      'java.util.LinkedHashMap<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable as a subtype of type 'interface java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>'
+      'java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable from field 'methodInfos' of type 'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine'
+      'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.ArrayList<org.drools.guvnor.client.modeldriven.dt.ConditionCol>
+java.util.ArrayList<org.drools.guvnor.client.factmodel.FactMetaModel>
    Serialization status
       Instantiable
    Path
-      'java.util.ArrayList<org.drools.guvnor.client.modeldriven.dt.ConditionCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.ConditionCol>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.dt.ConditionCol>' is reachable from field 'conditionCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
-      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.ArrayList<org.drools.guvnor.client.factmodel.FactMetaModel>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.factmodel.FactMetaModel>'
+      'java.util.List<org.drools.guvnor.client.factmodel.FactMetaModel>' is reachable from field 'models' of type 'org.drools.guvnor.client.factmodel.FactModels'
+      'org.drools.guvnor.client.factmodel.FactModels' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.ArrayList<org.drools.guvnor.client.modeldriven.dt.AttributeCol>
+java.util.ArrayList<org.drools.guvnor.client.modeldriven.testing.VerifyField>
    Serialization status
       Instantiable
    Path
-      'java.util.ArrayList<org.drools.guvnor.client.modeldriven.dt.AttributeCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.AttributeCol>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.dt.AttributeCol>' is reachable from field 'attributeCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
-      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.ArrayList<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable from field 'fieldValues' of type 'org.drools.guvnor.client.modeldriven.testing.VerifyFact'
+      'org.drools.guvnor.client.modeldriven.testing.VerifyFact' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.testing.Fixture'
+      'org.drools.guvnor.client.modeldriven.testing.Fixture' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable from field 'fixtures' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.ArrayList<org.drools.guvnor.client.modeldriven.dt.MetadataCol>
+java.util.ArrayList<org.drools.guvnor.client.modeldriven.testing.FactData>
    Serialization status
       Instantiable
    Path
-      'java.util.ArrayList<org.drools.guvnor.client.modeldriven.dt.MetadataCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.MetadataCol>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.dt.MetadataCol>' is reachable from field 'metadataCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
-      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.ArrayList<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable from field 'globals' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.ArrayList<org.drools.guvnor.client.rulefloweditor.TransferConnection>
+java.util.ArrayList<org.drools.guvnor.client.modeldriven.testing.FieldData>
    Serialization status
       Instantiable
    Path
-      'java.util.ArrayList<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable as a subtype of type 'interface java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>'
-      'java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable from field 'connections' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
-      'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.ArrayList<org.drools.guvnor.client.modeldriven.testing.FieldData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FieldData>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FieldData>' is reachable from field 'fieldData' of type 'org.drools.guvnor.client.modeldriven.testing.FactData'
+      'org.drools.guvnor.client.modeldriven.testing.FactData' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.testing.FactData'
+      'org.drools.guvnor.client.modeldriven.testing.FactData' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable from field 'globals' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.ArrayList<org.drools.guvnor.client.modeldriven.MethodInfo>
+java.util.ArrayList<org.drools.guvnor.client.rpc.DiscussionRecord>
    Serialization status
       Instantiable
    Path
-      'java.util.ArrayList<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable from type argument 1 of type 'java.util.LinkedHashMap<K, V>'
-      'java.util.LinkedHashMap<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable as a subtype of type 'interface java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>'
-      'java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable from field 'methodInfos' of type 'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine'
-      'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
-      'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
-      'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
-      Started from 'org.drools.guvnor.client.rpc.RuleAsset'
+      'java.util.ArrayList<org.drools.guvnor.client.rpc.DiscussionRecord>' is reachable as a supertype of type 'class org.cobogw.gwt.user.client.rpc.AsyncCallbackCollection'
+      'org.cobogw.gwt.user.client.rpc.AsyncCallbackCollection' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rpc.DiscussionRecord>'
+      Started from 'java.util.List<org.drools.guvnor.client.rpc.DiscussionRecord>'
 
-java.util.ArrayList<java.lang.String>
+java.util.ArrayList<org.drools.guvnor.client.factmodel.FieldMetaModel>
    Serialization status
       Instantiable
    Path
-      'java.util.ArrayList<java.lang.String>' is reachable as a subtype of type 'interface java.util.List<java.lang.String>'
-      'java.util.List<java.lang.String>' is reachable from field 'params' of type 'org.drools.guvnor.client.modeldriven.MethodInfo'
-      'org.drools.guvnor.client.modeldriven.MethodInfo' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.MethodInfo'
-      Type 'org.drools.guvnor.client.modeldriven.MethodInfo' is reachable from array type 'org.drools.guvnor.client.modeldriven.MethodInfo[]'
-      'org.drools.guvnor.client.modeldriven.MethodInfo' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable from type argument 1 of type 'java.util.LinkedHashMap<K, V>'
-      'java.util.LinkedHashMap<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable as a subtype of type 'interface java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>'
-      'java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable from field 'methodInfos' of type 'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine'
-      'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.ArrayList<org.drools.guvnor.client.factmodel.FieldMetaModel>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.factmodel.FieldMetaModel>'
+      'java.util.List<org.drools.guvnor.client.factmodel.FieldMetaModel>' is reachable from field 'fields' of type 'org.drools.guvnor.client.factmodel.FactMetaModel'
+      'org.drools.guvnor.client.factmodel.FactMetaModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.ArrayList<org.drools.guvnor.client.modeldriven.testing.FieldData>
-   Serialization status
-      Instantiable
-   Path
-      'java.util.ArrayList<org.drools.guvnor.client.modeldriven.testing.FieldData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FieldData>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FieldData>' is reachable from field 'fieldData' of type 'org.drools.guvnor.client.modeldriven.testing.FactData'
-      'org.drools.guvnor.client.modeldriven.testing.FactData' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
-      'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
-      'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
-      Started from 'org.drools.guvnor.client.rpc.RuleAsset'
-
 java.util.ArrayList<org.drools.guvnor.client.ruleeditor.PropertyHolder>
    Serialization status
       Instantiable
@@ -392,64 +392,68 @@
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.ArrayList<org.drools.guvnor.client.factmodel.FactMetaModel>
+java.util.ArrayList<org.drools.guvnor.client.modeldriven.testing.Fixture>
    Serialization status
       Instantiable
    Path
-      'java.util.ArrayList<org.drools.guvnor.client.factmodel.FactMetaModel>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.factmodel.FactMetaModel>'
-      'java.util.List<org.drools.guvnor.client.factmodel.FactMetaModel>' is reachable from field 'models' of type 'org.drools.guvnor.client.factmodel.FactModels'
-      'org.drools.guvnor.client.factmodel.FactModels' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.ArrayList<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable from field 'fixtures' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.ArrayList<org.drools.guvnor.client.rpc.DiscussionRecord>
+java.util.ArrayList<java.lang.String>
    Serialization status
       Instantiable
    Path
-      'java.util.ArrayList<org.drools.guvnor.client.rpc.DiscussionRecord>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rpc.DiscussionRecord>'
-      Started from 'java.util.List<org.drools.guvnor.client.rpc.DiscussionRecord>'
+      'java.util.ArrayList<java.lang.String>' is reachable as a subtype of type 'interface java.util.List<java.lang.String>'
+      'java.util.List<java.lang.String>' is reachable from field 'rules' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
+      'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
+      Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.ArrayList<org.drools.guvnor.client.factmodel.FieldMetaModel>
+java.util.ArrayList<org.drools.guvnor.client.modeldriven.dt.MetadataCol>
    Serialization status
       Instantiable
    Path
-      'java.util.ArrayList<org.drools.guvnor.client.factmodel.FieldMetaModel>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.factmodel.FieldMetaModel>'
-      'java.util.List<org.drools.guvnor.client.factmodel.FieldMetaModel>' is reachable from field 'fields' of type 'org.drools.guvnor.client.factmodel.FactMetaModel'
-      'org.drools.guvnor.client.factmodel.FactMetaModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.ArrayList<org.drools.guvnor.client.modeldriven.dt.MetadataCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.MetadataCol>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.dt.MetadataCol>' is reachable from field 'metadataCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
+      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.ArrayList<org.drools.guvnor.client.modeldriven.testing.VerifyField>
+java.util.ArrayList<org.drools.guvnor.client.modeldriven.dt.AttributeCol>
    Serialization status
       Instantiable
    Path
-      'java.util.ArrayList<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable from field 'fieldValues' of type 'org.drools.guvnor.client.modeldriven.testing.VerifyFact'
-      'org.drools.guvnor.client.modeldriven.testing.VerifyFact' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.ArrayList<org.drools.guvnor.client.modeldriven.dt.AttributeCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.AttributeCol>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.dt.AttributeCol>' is reachable from field 'attributeCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
+      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.ArrayList<org.drools.guvnor.client.modeldriven.testing.FactData>
+java.util.ArrayList<org.drools.guvnor.client.modeldriven.dt.ConditionCol>
    Serialization status
       Instantiable
    Path
-      'java.util.ArrayList<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable from field 'globals' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
-      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.ArrayList<org.drools.guvnor.client.modeldriven.dt.ConditionCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.ConditionCol>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.dt.ConditionCol>' is reachable from field 'conditionCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
+      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.ArrayList<org.drools.guvnor.client.modeldriven.testing.Fixture>
+java.util.ArrayList<org.drools.guvnor.client.modeldriven.dt.ActionCol>
    Serialization status
       Instantiable
    Path
-      'java.util.ArrayList<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable from field 'fixtures' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
-      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.ArrayList<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable from field 'actionCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
+      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -465,6 +469,17 @@
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
+java.util.ArrayList<org.drools.guvnor.client.rulefloweditor.TransferConnection>
+   Serialization status
+      Instantiable
+   Path
+      'java.util.ArrayList<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable as a subtype of type 'interface java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>'
+      'java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable from field 'connections' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
+      'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
+      'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
+      Started from 'org.drools.guvnor.client.rpc.RuleAsset'
+
 java.util.Arrays.ArrayList<org.drools.guvnor.client.rpc.PushResponse>
    Serialization status
       Instantiable
@@ -472,24 +487,24 @@
       'java.util.Arrays.ArrayList<org.drools.guvnor.client.rpc.PushResponse>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rpc.PushResponse>'
       Started from 'java.util.List<org.drools.guvnor.client.rpc.PushResponse>'
 
-java.util.Arrays.ArrayList<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>
+java.util.Arrays.ArrayList<java.lang.Integer>
    Serialization status
       Instantiable
    Path
-      'java.util.Arrays.ArrayList<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable as a subtype of type 'interface java.util.Collection<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>'
-      'java.util.Collection<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable from field 'suggestions' of type 'com.google.gwt.user.client.ui.SuggestOracle.Response'
-      'com.google.gwt.user.client.ui.SuggestOracle.Response' is reachable as a subtype of type 'interface com.google.gwt.user.client.rpc.IsSerializable'
+      'java.util.Arrays.ArrayList<java.lang.Integer>' is reachable as a subtype of type 'interface java.util.List<java.lang.Integer>'
+      'java.util.List<java.lang.Integer>' is reachable from field 'list' of type 'org.drools.guvnor.client.security.Capabilities'
+      'org.drools.guvnor.client.security.Capabilities' is reachable as a subtype of type 'interface com.google.gwt.user.client.rpc.IsSerializable'
       'com.google.gwt.user.client.rpc.IsSerializable' is reachable from field 'payload' of type 'org.drools.guvnor.client.rpc.ValidatedResponse'
       'org.drools.guvnor.client.rpc.ValidatedResponse' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.ValidatedResponse'
       Started from 'org.drools.guvnor.client.rpc.ValidatedResponse'
 
-java.util.Arrays.ArrayList<java.lang.Integer>
+java.util.Arrays.ArrayList<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>
    Serialization status
       Instantiable
    Path
-      'java.util.Arrays.ArrayList<java.lang.Integer>' is reachable as a subtype of type 'interface java.util.List<java.lang.Integer>'
-      'java.util.List<java.lang.Integer>' is reachable from field 'list' of type 'org.drools.guvnor.client.security.Capabilities'
-      'org.drools.guvnor.client.security.Capabilities' is reachable as a subtype of type 'interface com.google.gwt.user.client.rpc.IsSerializable'
+      'java.util.Arrays.ArrayList<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable as a subtype of type 'interface java.util.Collection<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>'
+      'java.util.Collection<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable from field 'suggestions' of type 'com.google.gwt.user.client.ui.SuggestOracle.Response'
+      'com.google.gwt.user.client.ui.SuggestOracle.Response' is reachable as a subtype of type 'interface com.google.gwt.user.client.rpc.IsSerializable'
       'com.google.gwt.user.client.rpc.IsSerializable' is reachable from field 'payload' of type 'org.drools.guvnor.client.rpc.ValidatedResponse'
       'org.drools.guvnor.client.rpc.ValidatedResponse' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.ValidatedResponse'
       Started from 'org.drools.guvnor.client.rpc.ValidatedResponse'
@@ -503,99 +518,96 @@
       'org.drools.guvnor.client.rpc.SingleScenarioResult' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.SingleScenarioResult'
       Started from 'org.drools.guvnor.client.rpc.SingleScenarioResult'
 
-java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.dt.ActionCol>
+java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.MethodInfo>
    Serialization status
       Instantiable
    Path
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable from field 'actionCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
-      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable from type argument 1 of type 'java.util.LinkedHashMap<K, V>'
+      'java.util.LinkedHashMap<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable as a subtype of type 'interface java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>'
+      'java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable from field 'methodInfos' of type 'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine'
+      'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.dt.ConditionCol>
+java.util.Arrays.ArrayList<org.drools.guvnor.client.factmodel.FactMetaModel>
    Serialization status
       Instantiable
    Path
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.dt.ConditionCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.ConditionCol>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.dt.ConditionCol>' is reachable from field 'conditionCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
-      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Arrays.ArrayList<org.drools.guvnor.client.factmodel.FactMetaModel>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.factmodel.FactMetaModel>'
+      'java.util.List<org.drools.guvnor.client.factmodel.FactMetaModel>' is reachable from field 'models' of type 'org.drools.guvnor.client.factmodel.FactModels'
+      'org.drools.guvnor.client.factmodel.FactModels' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.dt.AttributeCol>
+java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.testing.Fixture>
    Serialization status
       Instantiable
    Path
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.dt.AttributeCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.AttributeCol>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.dt.AttributeCol>' is reachable from field 'attributeCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
-      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable from field 'fixtures' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.dt.MetadataCol>
+java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.testing.VerifyField>
    Serialization status
       Instantiable
    Path
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.dt.MetadataCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.MetadataCol>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.dt.MetadataCol>' is reachable from field 'metadataCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
-      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable from field 'fieldValues' of type 'org.drools.guvnor.client.modeldriven.testing.VerifyFact'
+      'org.drools.guvnor.client.modeldriven.testing.VerifyFact' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.testing.Fixture'
+      'org.drools.guvnor.client.modeldriven.testing.Fixture' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable from field 'fixtures' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Arrays.ArrayList<org.drools.guvnor.client.rulefloweditor.TransferConnection>
+java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.testing.FactData>
    Serialization status
       Instantiable
    Path
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable as a subtype of type 'interface java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>'
-      'java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable from field 'connections' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
-      'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable from field 'globals' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Arrays.ArrayList<java.lang.String>
+java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.testing.FieldData>
    Serialization status
       Instantiable
    Path
-      'java.util.Arrays.ArrayList<java.lang.String>' is reachable as a subtype of type 'interface java.util.List<java.lang.String>'
-      'java.util.List<java.lang.String>' is reachable from field 'params' of type 'org.drools.guvnor.client.modeldriven.MethodInfo'
-      'org.drools.guvnor.client.modeldriven.MethodInfo' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.MethodInfo'
-      Type 'org.drools.guvnor.client.modeldriven.MethodInfo' is reachable from array type 'org.drools.guvnor.client.modeldriven.MethodInfo[]'
-      'org.drools.guvnor.client.modeldriven.MethodInfo' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable from type argument 1 of type 'java.util.LinkedHashMap<K, V>'
-      'java.util.LinkedHashMap<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable as a subtype of type 'interface java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>'
-      'java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable from field 'methodInfos' of type 'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine'
-      'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.testing.FieldData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FieldData>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FieldData>' is reachable from field 'fieldData' of type 'org.drools.guvnor.client.modeldriven.testing.FactData'
+      'org.drools.guvnor.client.modeldriven.testing.FactData' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.testing.FactData'
+      'org.drools.guvnor.client.modeldriven.testing.FactData' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable from field 'globals' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.MethodInfo>
+java.util.Arrays.ArrayList<org.drools.guvnor.client.rpc.DiscussionRecord>
    Serialization status
       Instantiable
    Path
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable from type argument 1 of type 'java.util.LinkedHashMap<K, V>'
-      'java.util.LinkedHashMap<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable as a subtype of type 'interface java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>'
-      'java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable from field 'methodInfos' of type 'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine'
-      'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
-      'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
-      'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
-      Started from 'org.drools.guvnor.client.rpc.RuleAsset'
+      'java.util.Arrays.ArrayList<org.drools.guvnor.client.rpc.DiscussionRecord>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rpc.DiscussionRecord>'
+      Started from 'java.util.List<org.drools.guvnor.client.rpc.DiscussionRecord>'
 
-java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.testing.FieldData>
+java.util.Arrays.ArrayList<org.drools.guvnor.client.factmodel.FieldMetaModel>
    Serialization status
       Instantiable
    Path
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.testing.FieldData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FieldData>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FieldData>' is reachable from field 'fieldData' of type 'org.drools.guvnor.client.modeldriven.testing.FactData'
-      'org.drools.guvnor.client.modeldriven.testing.FactData' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Arrays.ArrayList<org.drools.guvnor.client.factmodel.FieldMetaModel>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.factmodel.FieldMetaModel>'
+      'java.util.List<org.drools.guvnor.client.factmodel.FieldMetaModel>' is reachable from field 'fields' of type 'org.drools.guvnor.client.factmodel.FactMetaModel'
+      'org.drools.guvnor.client.factmodel.FactMetaModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -611,74 +623,78 @@
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Arrays.ArrayList<org.drools.guvnor.client.rpc.DiscussionRecord>
+java.util.Arrays.ArrayList<java.lang.String>
    Serialization status
       Instantiable
    Path
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.rpc.DiscussionRecord>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rpc.DiscussionRecord>'
-      Started from 'java.util.List<org.drools.guvnor.client.rpc.DiscussionRecord>'
+      'java.util.Arrays.ArrayList<java.lang.String>' is reachable as a subtype of type 'interface java.util.List<java.lang.String>'
+      'java.util.List<java.lang.String>' is reachable from field 'rules' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
+      'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
+      Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Arrays.ArrayList<org.drools.guvnor.client.factmodel.FieldMetaModel>
+java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.dt.MetadataCol>
    Serialization status
       Instantiable
    Path
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.factmodel.FieldMetaModel>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.factmodel.FieldMetaModel>'
-      'java.util.List<org.drools.guvnor.client.factmodel.FieldMetaModel>' is reachable from field 'fields' of type 'org.drools.guvnor.client.factmodel.FactMetaModel'
-      'org.drools.guvnor.client.factmodel.FactMetaModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.dt.MetadataCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.MetadataCol>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.dt.MetadataCol>' is reachable from field 'metadataCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
+      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Arrays.ArrayList<org.drools.guvnor.client.factmodel.FactMetaModel>
+java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.dt.AttributeCol>
    Serialization status
       Instantiable
    Path
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.factmodel.FactMetaModel>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.factmodel.FactMetaModel>'
-      'java.util.List<org.drools.guvnor.client.factmodel.FactMetaModel>' is reachable from field 'models' of type 'org.drools.guvnor.client.factmodel.FactModels'
-      'org.drools.guvnor.client.factmodel.FactModels' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.dt.AttributeCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.AttributeCol>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.dt.AttributeCol>' is reachable from field 'attributeCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
+      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.testing.VerifyField>
+java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.dt.ConditionCol>
    Serialization status
       Instantiable
    Path
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable from field 'fieldValues' of type 'org.drools.guvnor.client.modeldriven.testing.VerifyFact'
-      'org.drools.guvnor.client.modeldriven.testing.VerifyFact' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.dt.ConditionCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.ConditionCol>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.dt.ConditionCol>' is reachable from field 'conditionCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
+      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.testing.FactData>
+java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.dt.ActionCol>
    Serialization status
       Instantiable
    Path
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable from field 'globals' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
-      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable from field 'actionCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
+      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.testing.Fixture>
+java.util.Arrays.ArrayList<org.drools.guvnor.client.rulefloweditor.TransferNode>
    Serialization status
       Instantiable
    Path
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable from field 'fixtures' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
-      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Arrays.ArrayList<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
+      'java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable from field 'nodes' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
+      'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Arrays.ArrayList<org.drools.guvnor.client.rulefloweditor.TransferNode>
+java.util.Arrays.ArrayList<org.drools.guvnor.client.rulefloweditor.TransferConnection>
    Serialization status
       Instantiable
    Path
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
-      'java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable from field 'nodes' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
+      'java.util.Arrays.ArrayList<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable as a subtype of type 'interface java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>'
+      'java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable from field 'connections' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
       'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
@@ -715,18 +731,6 @@
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.HashMap<java.lang.String, java.lang.String>
-   Serialization status
-      Instantiable
-   Path
-      'java.util.HashMap<java.lang.String, java.lang.String>' is reachable as a supertype of type 'class java.util.LinkedHashMap<java.lang.String, java.lang.String>'
-      'java.util.LinkedHashMap<java.lang.String, java.lang.String>' is reachable as a subtype of type 'interface java.util.Map<java.lang.String, java.lang.String>'
-      'java.util.Map<java.lang.String, java.lang.String>' is reachable from field 'fieldTypes' of type 'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine'
-      'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
-      'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
-      'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
-      Started from 'org.drools.guvnor.client.rpc.RuleAsset'
-
 java.util.HashMap<java.lang.String, java.lang.String[]>
    Serialization status
       Instantiable
@@ -747,20 +751,36 @@
       'java.util.LinkedHashMap<org.drools.guvnor.client.rulefloweditor.SplitNode.ConnectionRef, org.drools.guvnor.client.rulefloweditor.SplitNode.Constraint>' is reachable as a subtype of type 'interface java.util.Map<org.drools.guvnor.client.rulefloweditor.SplitNode.ConnectionRef, org.drools.guvnor.client.rulefloweditor.SplitNode.Constraint>'
       'java.util.Map<org.drools.guvnor.client.rulefloweditor.SplitNode.ConnectionRef, org.drools.guvnor.client.rulefloweditor.SplitNode.Constraint>' is reachable from field 'constraints' of type 'org.drools.guvnor.client.rulefloweditor.SplitTransferNode'
       'org.drools.guvnor.client.rulefloweditor.SplitTransferNode' is reachable as a subtype of type 'class org.drools.guvnor.client.rulefloweditor.TransferNode'
-      Type 'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from array type 'org.drools.guvnor.client.rulefloweditor.TransferNode[]'
-      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
+      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
       'java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable from field 'nodes' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
       'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
+java.util.HashMap<java.lang.String, java.lang.String>
+   Serialization status
+      Instantiable
+   Path
+      'java.util.HashMap<java.lang.String, java.lang.String>' is reachable as a supertype of type 'class java.util.LinkedHashMap<java.lang.String, java.lang.String>'
+      'java.util.LinkedHashMap<java.lang.String, java.lang.String>' is reachable as a subtype of type 'interface java.util.Map<java.lang.String, java.lang.String>'
+      'java.util.Map<java.lang.String, java.lang.String>' is reachable from field 'parameters' of type 'org.drools.guvnor.client.rulefloweditor.HumanTaskTransferNode'
+      'org.drools.guvnor.client.rulefloweditor.HumanTaskTransferNode' is reachable as a subtype of type 'class org.drools.guvnor.client.rulefloweditor.TransferNode'
+      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
+      'java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable from field 'nodes' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
+      'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
+      'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
+      Started from 'org.drools.guvnor.client.rpc.RuleAsset'
+
 java.util.HashSet<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>
    Serialization status
       Instantiable
    Path
-      'java.util.HashSet<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable as a subtype of type 'interface java.util.Collection<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>'
+      'java.util.HashSet<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable as a supertype of type 'class java.util.LinkedHashSet<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>'
+      'java.util.LinkedHashSet<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable as a subtype of type 'interface java.util.Collection<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>'
       'java.util.Collection<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable from field 'suggestions' of type 'com.google.gwt.user.client.ui.SuggestOracle.Response'
       'com.google.gwt.user.client.ui.SuggestOracle.Response' is reachable as a subtype of type 'interface com.google.gwt.user.client.rpc.IsSerializable'
       'com.google.gwt.user.client.rpc.IsSerializable' is reachable from field 'payload' of type 'org.drools.guvnor.client.rpc.ValidatedResponse'
@@ -771,7 +791,8 @@
    Serialization status
       Instantiable
    Path
-      'java.util.HashSet<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable as a subtype of type 'interface java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>'
+      'java.util.HashSet<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable as a supertype of type 'class java.util.LinkedHashSet<org.drools.guvnor.client.rulefloweditor.TransferConnection>'
+      'java.util.LinkedHashSet<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable as a subtype of type 'interface java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>'
       'java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable from field 'connections' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
       'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -796,17 +817,6 @@
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.IdentityHashMap<java.lang.String, java.lang.String>
-   Serialization status
-      Instantiable
-   Path
-      'java.util.IdentityHashMap<java.lang.String, java.lang.String>' is reachable as a subtype of type 'interface java.util.Map<java.lang.String, java.lang.String>'
-      'java.util.Map<java.lang.String, java.lang.String>' is reachable from field 'fieldTypes' of type 'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine'
-      'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
-      'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
-      'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
-      Started from 'org.drools.guvnor.client.rpc.RuleAsset'
-
 java.util.IdentityHashMap<java.lang.String, java.lang.String[]>
    Serialization status
       Instantiable
@@ -825,15 +835,29 @@
       'java.util.IdentityHashMap<org.drools.guvnor.client.rulefloweditor.SplitNode.ConnectionRef, org.drools.guvnor.client.rulefloweditor.SplitNode.Constraint>' is reachable as a subtype of type 'interface java.util.Map<org.drools.guvnor.client.rulefloweditor.SplitNode.ConnectionRef, org.drools.guvnor.client.rulefloweditor.SplitNode.Constraint>'
       'java.util.Map<org.drools.guvnor.client.rulefloweditor.SplitNode.ConnectionRef, org.drools.guvnor.client.rulefloweditor.SplitNode.Constraint>' is reachable from field 'constraints' of type 'org.drools.guvnor.client.rulefloweditor.SplitTransferNode'
       'org.drools.guvnor.client.rulefloweditor.SplitTransferNode' is reachable as a subtype of type 'class org.drools.guvnor.client.rulefloweditor.TransferNode'
-      Type 'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from array type 'org.drools.guvnor.client.rulefloweditor.TransferNode[]'
-      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
+      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
       'java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable from field 'nodes' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
       'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
+java.util.IdentityHashMap<java.lang.String, java.lang.String>
+   Serialization status
+      Instantiable
+   Path
+      'java.util.IdentityHashMap<java.lang.String, java.lang.String>' is reachable as a subtype of type 'interface java.util.Map<java.lang.String, java.lang.String>'
+      'java.util.Map<java.lang.String, java.lang.String>' is reachable from field 'parameters' of type 'org.drools.guvnor.client.rulefloweditor.HumanTaskTransferNode'
+      'org.drools.guvnor.client.rulefloweditor.HumanTaskTransferNode' is reachable as a subtype of type 'class org.drools.guvnor.client.rulefloweditor.TransferNode'
+      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
+      'java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable from field 'nodes' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
+      'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
+      'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
+      Started from 'org.drools.guvnor.client.rpc.RuleAsset'
+
 java.util.LinkedHashMap<java.lang.String, java.util.List<java.lang.String>>
    Serialization status
       Instantiable
@@ -852,17 +876,6 @@
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.LinkedHashMap<java.lang.String, java.lang.String>
-   Serialization status
-      Instantiable
-   Path
-      'java.util.LinkedHashMap<java.lang.String, java.lang.String>' is reachable as a subtype of type 'interface java.util.Map<java.lang.String, java.lang.String>'
-      'java.util.Map<java.lang.String, java.lang.String>' is reachable from field 'fieldTypes' of type 'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine'
-      'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
-      'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
-      'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
-      Started from 'org.drools.guvnor.client.rpc.RuleAsset'
-
 java.util.LinkedHashMap<java.lang.String, java.lang.String[]>
    Serialization status
       Instantiable
@@ -881,15 +894,29 @@
       'java.util.LinkedHashMap<org.drools.guvnor.client.rulefloweditor.SplitNode.ConnectionRef, org.drools.guvnor.client.rulefloweditor.SplitNode.Constraint>' is reachable as a subtype of type 'interface java.util.Map<org.drools.guvnor.client.rulefloweditor.SplitNode.ConnectionRef, org.drools.guvnor.client.rulefloweditor.SplitNode.Constraint>'
       'java.util.Map<org.drools.guvnor.client.rulefloweditor.SplitNode.ConnectionRef, org.drools.guvnor.client.rulefloweditor.SplitNode.Constraint>' is reachable from field 'constraints' of type 'org.drools.guvnor.client.rulefloweditor.SplitTransferNode'
       'org.drools.guvnor.client.rulefloweditor.SplitTransferNode' is reachable as a subtype of type 'class org.drools.guvnor.client.rulefloweditor.TransferNode'
-      Type 'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from array type 'org.drools.guvnor.client.rulefloweditor.TransferNode[]'
-      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
+      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
       'java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable from field 'nodes' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
       'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
+java.util.LinkedHashMap<java.lang.String, java.lang.String>
+   Serialization status
+      Instantiable
+   Path
+      'java.util.LinkedHashMap<java.lang.String, java.lang.String>' is reachable as a subtype of type 'interface java.util.Map<java.lang.String, java.lang.String>'
+      'java.util.Map<java.lang.String, java.lang.String>' is reachable from field 'parameters' of type 'org.drools.guvnor.client.rulefloweditor.HumanTaskTransferNode'
+      'org.drools.guvnor.client.rulefloweditor.HumanTaskTransferNode' is reachable as a subtype of type 'class org.drools.guvnor.client.rulefloweditor.TransferNode'
+      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
+      'java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable from field 'nodes' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
+      'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
+      'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
+      Started from 'org.drools.guvnor.client.rpc.RuleAsset'
+
 java.util.LinkedHashSet<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>
    Serialization status
       Instantiable
@@ -919,24 +946,24 @@
       'java.util.LinkedList<org.drools.guvnor.client.rpc.PushResponse>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rpc.PushResponse>'
       Started from 'java.util.List<org.drools.guvnor.client.rpc.PushResponse>'
 
-java.util.LinkedList<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>
+java.util.LinkedList<java.lang.Integer>
    Serialization status
       Instantiable
    Path
-      'java.util.LinkedList<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable as a subtype of type 'interface java.util.Collection<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>'
-      'java.util.Collection<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable from field 'suggestions' of type 'com.google.gwt.user.client.ui.SuggestOracle.Response'
-      'com.google.gwt.user.client.ui.SuggestOracle.Response' is reachable as a subtype of type 'interface com.google.gwt.user.client.rpc.IsSerializable'
+      'java.util.LinkedList<java.lang.Integer>' is reachable as a subtype of type 'interface java.util.List<java.lang.Integer>'
+      'java.util.List<java.lang.Integer>' is reachable from field 'list' of type 'org.drools.guvnor.client.security.Capabilities'
+      'org.drools.guvnor.client.security.Capabilities' is reachable as a subtype of type 'interface com.google.gwt.user.client.rpc.IsSerializable'
       'com.google.gwt.user.client.rpc.IsSerializable' is reachable from field 'payload' of type 'org.drools.guvnor.client.rpc.ValidatedResponse'
       'org.drools.guvnor.client.rpc.ValidatedResponse' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.ValidatedResponse'
       Started from 'org.drools.guvnor.client.rpc.ValidatedResponse'
 
-java.util.LinkedList<java.lang.Integer>
+java.util.LinkedList<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>
    Serialization status
       Instantiable
    Path
-      'java.util.LinkedList<java.lang.Integer>' is reachable as a subtype of type 'interface java.util.List<java.lang.Integer>'
-      'java.util.List<java.lang.Integer>' is reachable from field 'list' of type 'org.drools.guvnor.client.security.Capabilities'
-      'org.drools.guvnor.client.security.Capabilities' is reachable as a subtype of type 'interface com.google.gwt.user.client.rpc.IsSerializable'
+      'java.util.LinkedList<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable as a subtype of type 'interface java.util.Collection<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>'
+      'java.util.Collection<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable from field 'suggestions' of type 'com.google.gwt.user.client.ui.SuggestOracle.Response'
+      'com.google.gwt.user.client.ui.SuggestOracle.Response' is reachable as a subtype of type 'interface com.google.gwt.user.client.rpc.IsSerializable'
       'com.google.gwt.user.client.rpc.IsSerializable' is reachable from field 'payload' of type 'org.drools.guvnor.client.rpc.ValidatedResponse'
       'org.drools.guvnor.client.rpc.ValidatedResponse' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.ValidatedResponse'
       Started from 'org.drools.guvnor.client.rpc.ValidatedResponse'
@@ -950,99 +977,96 @@
       'org.drools.guvnor.client.rpc.SingleScenarioResult' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.SingleScenarioResult'
       Started from 'org.drools.guvnor.client.rpc.SingleScenarioResult'
 
-java.util.LinkedList<org.drools.guvnor.client.modeldriven.dt.ActionCol>
+java.util.LinkedList<org.drools.guvnor.client.modeldriven.MethodInfo>
    Serialization status
       Instantiable
    Path
-      'java.util.LinkedList<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable from field 'actionCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
-      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.LinkedList<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable from type argument 1 of type 'java.util.LinkedHashMap<K, V>'
+      'java.util.LinkedHashMap<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable as a subtype of type 'interface java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>'
+      'java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable from field 'methodInfos' of type 'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine'
+      'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.LinkedList<org.drools.guvnor.client.modeldriven.dt.ConditionCol>
+java.util.LinkedList<org.drools.guvnor.client.factmodel.FactMetaModel>
    Serialization status
       Instantiable
    Path
-      'java.util.LinkedList<org.drools.guvnor.client.modeldriven.dt.ConditionCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.ConditionCol>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.dt.ConditionCol>' is reachable from field 'conditionCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
-      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.LinkedList<org.drools.guvnor.client.factmodel.FactMetaModel>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.factmodel.FactMetaModel>'
+      'java.util.List<org.drools.guvnor.client.factmodel.FactMetaModel>' is reachable from field 'models' of type 'org.drools.guvnor.client.factmodel.FactModels'
+      'org.drools.guvnor.client.factmodel.FactModels' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.LinkedList<org.drools.guvnor.client.modeldriven.dt.AttributeCol>
+java.util.LinkedList<org.drools.guvnor.client.modeldriven.testing.Fixture>
    Serialization status
       Instantiable
    Path
-      'java.util.LinkedList<org.drools.guvnor.client.modeldriven.dt.AttributeCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.AttributeCol>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.dt.AttributeCol>' is reachable from field 'attributeCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
-      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.LinkedList<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable from field 'fixtures' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.LinkedList<org.drools.guvnor.client.modeldriven.dt.MetadataCol>
+java.util.LinkedList<org.drools.guvnor.client.modeldriven.testing.VerifyField>
    Serialization status
       Instantiable
    Path
-      'java.util.LinkedList<org.drools.guvnor.client.modeldriven.dt.MetadataCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.MetadataCol>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.dt.MetadataCol>' is reachable from field 'metadataCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
-      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.LinkedList<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable from field 'fieldValues' of type 'org.drools.guvnor.client.modeldriven.testing.VerifyFact'
+      'org.drools.guvnor.client.modeldriven.testing.VerifyFact' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.testing.Fixture'
+      'org.drools.guvnor.client.modeldriven.testing.Fixture' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable from field 'fixtures' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.LinkedList<org.drools.guvnor.client.rulefloweditor.TransferConnection>
+java.util.LinkedList<org.drools.guvnor.client.modeldriven.testing.FactData>
    Serialization status
       Instantiable
    Path
-      'java.util.LinkedList<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable as a subtype of type 'interface java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>'
-      'java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable from field 'connections' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
-      'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.LinkedList<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable from field 'globals' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.LinkedList<org.drools.guvnor.client.modeldriven.MethodInfo>
+java.util.LinkedList<org.drools.guvnor.client.modeldriven.testing.FieldData>
    Serialization status
       Instantiable
    Path
-      'java.util.LinkedList<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable from type argument 1 of type 'java.util.LinkedHashMap<K, V>'
-      'java.util.LinkedHashMap<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable as a subtype of type 'interface java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>'
-      'java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable from field 'methodInfos' of type 'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine'
-      'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.LinkedList<org.drools.guvnor.client.modeldriven.testing.FieldData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FieldData>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FieldData>' is reachable from field 'fieldData' of type 'org.drools.guvnor.client.modeldriven.testing.FactData'
+      'org.drools.guvnor.client.modeldriven.testing.FactData' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.testing.FactData'
+      'org.drools.guvnor.client.modeldriven.testing.FactData' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable from field 'globals' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.LinkedList<java.lang.String>
+java.util.LinkedList<org.drools.guvnor.client.rpc.DiscussionRecord>
    Serialization status
       Instantiable
    Path
-      'java.util.LinkedList<java.lang.String>' is reachable as a subtype of type 'interface java.util.List<java.lang.String>'
-      'java.util.List<java.lang.String>' is reachable from field 'params' of type 'org.drools.guvnor.client.modeldriven.MethodInfo'
-      'org.drools.guvnor.client.modeldriven.MethodInfo' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.MethodInfo'
-      Type 'org.drools.guvnor.client.modeldriven.MethodInfo' is reachable from array type 'org.drools.guvnor.client.modeldriven.MethodInfo[]'
-      'org.drools.guvnor.client.modeldriven.MethodInfo' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable from type argument 1 of type 'java.util.LinkedHashMap<K, V>'
-      'java.util.LinkedHashMap<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable as a subtype of type 'interface java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>'
-      'java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable from field 'methodInfos' of type 'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine'
-      'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
-      'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
-      'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
-      Started from 'org.drools.guvnor.client.rpc.RuleAsset'
+      'java.util.LinkedList<org.drools.guvnor.client.rpc.DiscussionRecord>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rpc.DiscussionRecord>'
+      Started from 'java.util.List<org.drools.guvnor.client.rpc.DiscussionRecord>'
 
-java.util.LinkedList<org.drools.guvnor.client.modeldriven.testing.FieldData>
+java.util.LinkedList<org.drools.guvnor.client.factmodel.FieldMetaModel>
    Serialization status
       Instantiable
    Path
-      'java.util.LinkedList<org.drools.guvnor.client.modeldriven.testing.FieldData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FieldData>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FieldData>' is reachable from field 'fieldData' of type 'org.drools.guvnor.client.modeldriven.testing.FactData'
-      'org.drools.guvnor.client.modeldriven.testing.FactData' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.LinkedList<org.drools.guvnor.client.factmodel.FieldMetaModel>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.factmodel.FieldMetaModel>'
+      'java.util.List<org.drools.guvnor.client.factmodel.FieldMetaModel>' is reachable from field 'fields' of type 'org.drools.guvnor.client.factmodel.FactMetaModel'
+      'org.drools.guvnor.client.factmodel.FactMetaModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -1058,74 +1082,78 @@
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.LinkedList<org.drools.guvnor.client.factmodel.FactMetaModel>
+java.util.LinkedList<java.lang.String>
    Serialization status
       Instantiable
    Path
-      'java.util.LinkedList<org.drools.guvnor.client.factmodel.FactMetaModel>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.factmodel.FactMetaModel>'
-      'java.util.List<org.drools.guvnor.client.factmodel.FactMetaModel>' is reachable from field 'models' of type 'org.drools.guvnor.client.factmodel.FactModels'
-      'org.drools.guvnor.client.factmodel.FactModels' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.LinkedList<java.lang.String>' is reachable as a subtype of type 'interface java.util.List<java.lang.String>'
+      'java.util.List<java.lang.String>' is reachable from field 'rules' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.LinkedList<org.drools.guvnor.client.rpc.DiscussionRecord>
+java.util.LinkedList<org.drools.guvnor.client.modeldriven.dt.MetadataCol>
    Serialization status
       Instantiable
    Path
-      'java.util.LinkedList<org.drools.guvnor.client.rpc.DiscussionRecord>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rpc.DiscussionRecord>'
-      Started from 'java.util.List<org.drools.guvnor.client.rpc.DiscussionRecord>'
+      'java.util.LinkedList<org.drools.guvnor.client.modeldriven.dt.MetadataCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.MetadataCol>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.dt.MetadataCol>' is reachable from field 'metadataCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
+      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
+      'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
+      Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.LinkedList<org.drools.guvnor.client.factmodel.FieldMetaModel>
+java.util.LinkedList<org.drools.guvnor.client.modeldriven.dt.AttributeCol>
    Serialization status
       Instantiable
    Path
-      'java.util.LinkedList<org.drools.guvnor.client.factmodel.FieldMetaModel>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.factmodel.FieldMetaModel>'
-      'java.util.List<org.drools.guvnor.client.factmodel.FieldMetaModel>' is reachable from field 'fields' of type 'org.drools.guvnor.client.factmodel.FactMetaModel'
-      'org.drools.guvnor.client.factmodel.FactMetaModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.LinkedList<org.drools.guvnor.client.modeldriven.dt.AttributeCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.AttributeCol>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.dt.AttributeCol>' is reachable from field 'attributeCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
+      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.LinkedList<org.drools.guvnor.client.modeldriven.testing.VerifyField>
+java.util.LinkedList<org.drools.guvnor.client.modeldriven.dt.ConditionCol>
    Serialization status
       Instantiable
    Path
-      'java.util.LinkedList<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable from field 'fieldValues' of type 'org.drools.guvnor.client.modeldriven.testing.VerifyFact'
-      'org.drools.guvnor.client.modeldriven.testing.VerifyFact' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.LinkedList<org.drools.guvnor.client.modeldriven.dt.ConditionCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.ConditionCol>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.dt.ConditionCol>' is reachable from field 'conditionCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
+      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.LinkedList<org.drools.guvnor.client.modeldriven.testing.FactData>
+java.util.LinkedList<org.drools.guvnor.client.modeldriven.dt.ActionCol>
    Serialization status
       Instantiable
    Path
-      'java.util.LinkedList<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable from field 'globals' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
-      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.LinkedList<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable from field 'actionCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
+      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.LinkedList<org.drools.guvnor.client.modeldriven.testing.Fixture>
+java.util.LinkedList<org.drools.guvnor.client.rulefloweditor.TransferNode>
    Serialization status
       Instantiable
    Path
-      'java.util.LinkedList<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable from field 'fixtures' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
-      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.LinkedList<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
+      'java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable from field 'nodes' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
+      'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.LinkedList<org.drools.guvnor.client.rulefloweditor.TransferNode>
+java.util.LinkedList<org.drools.guvnor.client.rulefloweditor.TransferConnection>
    Serialization status
       Instantiable
    Path
-      'java.util.LinkedList<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
-      'java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable from field 'nodes' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
+      'java.util.LinkedList<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable as a subtype of type 'interface java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>'
+      'java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable from field 'connections' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
       'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
@@ -1138,24 +1166,24 @@
       'java.util.Stack<org.drools.guvnor.client.rpc.PushResponse>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rpc.PushResponse>'
       Started from 'java.util.List<org.drools.guvnor.client.rpc.PushResponse>'
 
-java.util.Stack<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>
+java.util.Stack<java.lang.Integer>
    Serialization status
       Instantiable
    Path
-      'java.util.Stack<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable as a subtype of type 'interface java.util.Collection<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>'
-      'java.util.Collection<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable from field 'suggestions' of type 'com.google.gwt.user.client.ui.SuggestOracle.Response'
-      'com.google.gwt.user.client.ui.SuggestOracle.Response' is reachable as a subtype of type 'interface com.google.gwt.user.client.rpc.IsSerializable'
+      'java.util.Stack<java.lang.Integer>' is reachable as a subtype of type 'interface java.util.List<java.lang.Integer>'
+      'java.util.List<java.lang.Integer>' is reachable from field 'list' of type 'org.drools.guvnor.client.security.Capabilities'
+      'org.drools.guvnor.client.security.Capabilities' is reachable as a subtype of type 'interface com.google.gwt.user.client.rpc.IsSerializable'
       'com.google.gwt.user.client.rpc.IsSerializable' is reachable from field 'payload' of type 'org.drools.guvnor.client.rpc.ValidatedResponse'
       'org.drools.guvnor.client.rpc.ValidatedResponse' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.ValidatedResponse'
       Started from 'org.drools.guvnor.client.rpc.ValidatedResponse'
 
-java.util.Stack<java.lang.Integer>
+java.util.Stack<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>
    Serialization status
       Instantiable
    Path
-      'java.util.Stack<java.lang.Integer>' is reachable as a subtype of type 'interface java.util.List<java.lang.Integer>'
-      'java.util.List<java.lang.Integer>' is reachable from field 'list' of type 'org.drools.guvnor.client.security.Capabilities'
-      'org.drools.guvnor.client.security.Capabilities' is reachable as a subtype of type 'interface com.google.gwt.user.client.rpc.IsSerializable'
+      'java.util.Stack<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable as a subtype of type 'interface java.util.Collection<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>'
+      'java.util.Collection<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable from field 'suggestions' of type 'com.google.gwt.user.client.ui.SuggestOracle.Response'
+      'com.google.gwt.user.client.ui.SuggestOracle.Response' is reachable as a subtype of type 'interface com.google.gwt.user.client.rpc.IsSerializable'
       'com.google.gwt.user.client.rpc.IsSerializable' is reachable from field 'payload' of type 'org.drools.guvnor.client.rpc.ValidatedResponse'
       'org.drools.guvnor.client.rpc.ValidatedResponse' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.ValidatedResponse'
       Started from 'org.drools.guvnor.client.rpc.ValidatedResponse'
@@ -1169,99 +1197,96 @@
       'org.drools.guvnor.client.rpc.SingleScenarioResult' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.SingleScenarioResult'
       Started from 'org.drools.guvnor.client.rpc.SingleScenarioResult'
 
-java.util.Stack<org.drools.guvnor.client.modeldriven.dt.ActionCol>
+java.util.Stack<org.drools.guvnor.client.modeldriven.MethodInfo>
    Serialization status
       Instantiable
    Path
-      'java.util.Stack<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable from field 'actionCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
-      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Stack<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable from type argument 1 of type 'java.util.LinkedHashMap<K, V>'
+      'java.util.LinkedHashMap<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable as a subtype of type 'interface java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>'
+      'java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable from field 'methodInfos' of type 'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine'
+      'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Stack<org.drools.guvnor.client.modeldriven.dt.ConditionCol>
+java.util.Stack<org.drools.guvnor.client.factmodel.FactMetaModel>
    Serialization status
       Instantiable
    Path
-      'java.util.Stack<org.drools.guvnor.client.modeldriven.dt.ConditionCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.ConditionCol>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.dt.ConditionCol>' is reachable from field 'conditionCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
-      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Stack<org.drools.guvnor.client.factmodel.FactMetaModel>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.factmodel.FactMetaModel>'
+      'java.util.List<org.drools.guvnor.client.factmodel.FactMetaModel>' is reachable from field 'models' of type 'org.drools.guvnor.client.factmodel.FactModels'
+      'org.drools.guvnor.client.factmodel.FactModels' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Stack<org.drools.guvnor.client.modeldriven.dt.AttributeCol>
+java.util.Stack<org.drools.guvnor.client.modeldriven.testing.Fixture>
    Serialization status
       Instantiable
    Path
-      'java.util.Stack<org.drools.guvnor.client.modeldriven.dt.AttributeCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.AttributeCol>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.dt.AttributeCol>' is reachable from field 'attributeCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
-      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Stack<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable from field 'fixtures' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Stack<org.drools.guvnor.client.modeldriven.dt.MetadataCol>
+java.util.Stack<org.drools.guvnor.client.modeldriven.testing.VerifyField>
    Serialization status
       Instantiable
    Path
-      'java.util.Stack<org.drools.guvnor.client.modeldriven.dt.MetadataCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.MetadataCol>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.dt.MetadataCol>' is reachable from field 'metadataCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
-      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Stack<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable from field 'fieldValues' of type 'org.drools.guvnor.client.modeldriven.testing.VerifyFact'
+      'org.drools.guvnor.client.modeldriven.testing.VerifyFact' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.testing.Fixture'
+      'org.drools.guvnor.client.modeldriven.testing.Fixture' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable from field 'fixtures' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Stack<org.drools.guvnor.client.rulefloweditor.TransferConnection>
+java.util.Stack<org.drools.guvnor.client.modeldriven.testing.FactData>
    Serialization status
       Instantiable
    Path
-      'java.util.Stack<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable as a subtype of type 'interface java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>'
-      'java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable from field 'connections' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
-      'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Stack<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable from field 'globals' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Stack<org.drools.guvnor.client.modeldriven.MethodInfo>
+java.util.Stack<org.drools.guvnor.client.modeldriven.testing.FieldData>
    Serialization status
       Instantiable
    Path
-      'java.util.Stack<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable from type argument 1 of type 'java.util.LinkedHashMap<K, V>'
-      'java.util.LinkedHashMap<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable as a subtype of type 'interface java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>'
-      'java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable from field 'methodInfos' of type 'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine'
-      'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Stack<org.drools.guvnor.client.modeldriven.testing.FieldData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FieldData>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FieldData>' is reachable from field 'fieldData' of type 'org.drools.guvnor.client.modeldriven.testing.FactData'
+      'org.drools.guvnor.client.modeldriven.testing.FactData' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.testing.FactData'
+      'org.drools.guvnor.client.modeldriven.testing.FactData' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable from field 'globals' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Stack<java.lang.String>
+java.util.Stack<org.drools.guvnor.client.rpc.DiscussionRecord>
    Serialization status
       Instantiable
    Path
-      'java.util.Stack<java.lang.String>' is reachable as a subtype of type 'interface java.util.List<java.lang.String>'
-      'java.util.List<java.lang.String>' is reachable from field 'params' of type 'org.drools.guvnor.client.modeldriven.MethodInfo'
-      'org.drools.guvnor.client.modeldriven.MethodInfo' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.MethodInfo'
-      Type 'org.drools.guvnor.client.modeldriven.MethodInfo' is reachable from array type 'org.drools.guvnor.client.modeldriven.MethodInfo[]'
-      'org.drools.guvnor.client.modeldriven.MethodInfo' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable from type argument 1 of type 'java.util.LinkedHashMap<K, V>'
-      'java.util.LinkedHashMap<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable as a subtype of type 'interface java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>'
-      'java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable from field 'methodInfos' of type 'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine'
-      'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
-      'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
-      'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
-      Started from 'org.drools.guvnor.client.rpc.RuleAsset'
+      'java.util.Stack<org.drools.guvnor.client.rpc.DiscussionRecord>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rpc.DiscussionRecord>'
+      Started from 'java.util.List<org.drools.guvnor.client.rpc.DiscussionRecord>'
 
-java.util.Stack<org.drools.guvnor.client.modeldriven.testing.FieldData>
+java.util.Stack<org.drools.guvnor.client.factmodel.FieldMetaModel>
    Serialization status
       Instantiable
    Path
-      'java.util.Stack<org.drools.guvnor.client.modeldriven.testing.FieldData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FieldData>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FieldData>' is reachable from field 'fieldData' of type 'org.drools.guvnor.client.modeldriven.testing.FactData'
-      'org.drools.guvnor.client.modeldriven.testing.FactData' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Stack<org.drools.guvnor.client.factmodel.FieldMetaModel>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.factmodel.FieldMetaModel>'
+      'java.util.List<org.drools.guvnor.client.factmodel.FieldMetaModel>' is reachable from field 'fields' of type 'org.drools.guvnor.client.factmodel.FactMetaModel'
+      'org.drools.guvnor.client.factmodel.FactMetaModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -1277,74 +1302,78 @@
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Stack<org.drools.guvnor.client.factmodel.FactMetaModel>
+java.util.Stack<java.lang.String>
    Serialization status
       Instantiable
    Path
-      'java.util.Stack<org.drools.guvnor.client.factmodel.FactMetaModel>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.factmodel.FactMetaModel>'
-      'java.util.List<org.drools.guvnor.client.factmodel.FactMetaModel>' is reachable from field 'models' of type 'org.drools.guvnor.client.factmodel.FactModels'
-      'org.drools.guvnor.client.factmodel.FactModels' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Stack<java.lang.String>' is reachable as a subtype of type 'interface java.util.List<java.lang.String>'
+      'java.util.List<java.lang.String>' is reachable from field 'rules' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Stack<org.drools.guvnor.client.rpc.DiscussionRecord>
+java.util.Stack<org.drools.guvnor.client.modeldriven.dt.MetadataCol>
    Serialization status
       Instantiable
    Path
-      'java.util.Stack<org.drools.guvnor.client.rpc.DiscussionRecord>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rpc.DiscussionRecord>'
-      Started from 'java.util.List<org.drools.guvnor.client.rpc.DiscussionRecord>'
+      'java.util.Stack<org.drools.guvnor.client.modeldriven.dt.MetadataCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.MetadataCol>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.dt.MetadataCol>' is reachable from field 'metadataCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
+      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
+      'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
+      Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Stack<org.drools.guvnor.client.factmodel.FieldMetaModel>
+java.util.Stack<org.drools.guvnor.client.modeldriven.dt.AttributeCol>
    Serialization status
       Instantiable
    Path
-      'java.util.Stack<org.drools.guvnor.client.factmodel.FieldMetaModel>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.factmodel.FieldMetaModel>'
-      'java.util.List<org.drools.guvnor.client.factmodel.FieldMetaModel>' is reachable from field 'fields' of type 'org.drools.guvnor.client.factmodel.FactMetaModel'
-      'org.drools.guvnor.client.factmodel.FactMetaModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Stack<org.drools.guvnor.client.modeldriven.dt.AttributeCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.AttributeCol>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.dt.AttributeCol>' is reachable from field 'attributeCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
+      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Stack<org.drools.guvnor.client.modeldriven.testing.VerifyField>
+java.util.Stack<org.drools.guvnor.client.modeldriven.dt.ConditionCol>
    Serialization status
       Instantiable
    Path
-      'java.util.Stack<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable from field 'fieldValues' of type 'org.drools.guvnor.client.modeldriven.testing.VerifyFact'
-      'org.drools.guvnor.client.modeldriven.testing.VerifyFact' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Stack<org.drools.guvnor.client.modeldriven.dt.ConditionCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.ConditionCol>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.dt.ConditionCol>' is reachable from field 'conditionCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
+      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Stack<org.drools.guvnor.client.modeldriven.testing.FactData>
+java.util.Stack<org.drools.guvnor.client.modeldriven.dt.ActionCol>
    Serialization status
       Instantiable
    Path
-      'java.util.Stack<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable from field 'globals' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
-      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Stack<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable from field 'actionCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
+      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Stack<org.drools.guvnor.client.modeldriven.testing.Fixture>
+java.util.Stack<org.drools.guvnor.client.rulefloweditor.TransferNode>
    Serialization status
       Instantiable
    Path
-      'java.util.Stack<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable from field 'fixtures' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
-      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Stack<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
+      'java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable from field 'nodes' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
+      'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Stack<org.drools.guvnor.client.rulefloweditor.TransferNode>
+java.util.Stack<org.drools.guvnor.client.rulefloweditor.TransferConnection>
    Serialization status
       Instantiable
    Path
-      'java.util.Stack<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
-      'java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable from field 'nodes' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
+      'java.util.Stack<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable as a subtype of type 'interface java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>'
+      'java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable from field 'connections' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
       'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
@@ -1357,25 +1386,25 @@
       'java.util.Vector<org.drools.guvnor.client.rpc.PushResponse>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rpc.PushResponse>'
       Started from 'java.util.List<org.drools.guvnor.client.rpc.PushResponse>'
 
-java.util.Vector<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>
+java.util.Vector<java.lang.Integer>
    Serialization status
       Instantiable
    Path
-      'java.util.Vector<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable as a supertype of type 'class java.util.Stack<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>'
-      'java.util.Stack<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable as a subtype of type 'interface java.util.Collection<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>'
-      'java.util.Collection<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable from field 'suggestions' of type 'com.google.gwt.user.client.ui.SuggestOracle.Response'
-      'com.google.gwt.user.client.ui.SuggestOracle.Response' is reachable as a subtype of type 'interface com.google.gwt.user.client.rpc.IsSerializable'
+      'java.util.Vector<java.lang.Integer>' is reachable as a subtype of type 'interface java.util.List<java.lang.Integer>'
+      'java.util.List<java.lang.Integer>' is reachable from field 'list' of type 'org.drools.guvnor.client.security.Capabilities'
+      'org.drools.guvnor.client.security.Capabilities' is reachable as a subtype of type 'interface com.google.gwt.user.client.rpc.IsSerializable'
       'com.google.gwt.user.client.rpc.IsSerializable' is reachable from field 'payload' of type 'org.drools.guvnor.client.rpc.ValidatedResponse'
       'org.drools.guvnor.client.rpc.ValidatedResponse' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.ValidatedResponse'
       Started from 'org.drools.guvnor.client.rpc.ValidatedResponse'
 
-java.util.Vector<java.lang.Integer>
+java.util.Vector<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>
    Serialization status
       Instantiable
    Path
-      'java.util.Vector<java.lang.Integer>' is reachable as a subtype of type 'interface java.util.List<java.lang.Integer>'
-      'java.util.List<java.lang.Integer>' is reachable from field 'list' of type 'org.drools.guvnor.client.security.Capabilities'
-      'org.drools.guvnor.client.security.Capabilities' is reachable as a subtype of type 'interface com.google.gwt.user.client.rpc.IsSerializable'
+      'java.util.Vector<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable as a supertype of type 'class java.util.Stack<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>'
+      'java.util.Stack<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable as a subtype of type 'interface java.util.Collection<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>'
+      'java.util.Collection<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>' is reachable from field 'suggestions' of type 'com.google.gwt.user.client.ui.SuggestOracle.Response'
+      'com.google.gwt.user.client.ui.SuggestOracle.Response' is reachable as a subtype of type 'interface com.google.gwt.user.client.rpc.IsSerializable'
       'com.google.gwt.user.client.rpc.IsSerializable' is reachable from field 'payload' of type 'org.drools.guvnor.client.rpc.ValidatedResponse'
       'org.drools.guvnor.client.rpc.ValidatedResponse' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.ValidatedResponse'
       Started from 'org.drools.guvnor.client.rpc.ValidatedResponse'
@@ -1389,100 +1418,96 @@
       'org.drools.guvnor.client.rpc.SingleScenarioResult' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.SingleScenarioResult'
       Started from 'org.drools.guvnor.client.rpc.SingleScenarioResult'
 
-java.util.Vector<org.drools.guvnor.client.modeldriven.dt.ActionCol>
+java.util.Vector<org.drools.guvnor.client.modeldriven.MethodInfo>
    Serialization status
       Instantiable
    Path
-      'java.util.Vector<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable from field 'actionCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
-      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable from type argument 1 of type 'java.util.LinkedHashMap<K, V>'
+      'java.util.LinkedHashMap<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable as a subtype of type 'interface java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>'
+      'java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable from field 'methodInfos' of type 'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine'
+      'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Vector<org.drools.guvnor.client.modeldriven.dt.ConditionCol>
+java.util.Vector<org.drools.guvnor.client.factmodel.FactMetaModel>
    Serialization status
       Instantiable
    Path
-      'java.util.Vector<org.drools.guvnor.client.modeldriven.dt.ConditionCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.ConditionCol>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.dt.ConditionCol>' is reachable from field 'conditionCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
-      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Vector<org.drools.guvnor.client.factmodel.FactMetaModel>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.factmodel.FactMetaModel>'
+      'java.util.List<org.drools.guvnor.client.factmodel.FactMetaModel>' is reachable from field 'models' of type 'org.drools.guvnor.client.factmodel.FactModels'
+      'org.drools.guvnor.client.factmodel.FactModels' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Vector<org.drools.guvnor.client.modeldriven.dt.AttributeCol>
+java.util.Vector<org.drools.guvnor.client.modeldriven.testing.VerifyField>
    Serialization status
       Instantiable
    Path
-      'java.util.Vector<org.drools.guvnor.client.modeldriven.dt.AttributeCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.AttributeCol>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.dt.AttributeCol>' is reachable from field 'attributeCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
-      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable from field 'fieldValues' of type 'org.drools.guvnor.client.modeldriven.testing.VerifyFact'
+      'org.drools.guvnor.client.modeldriven.testing.VerifyFact' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.testing.Fixture'
+      'org.drools.guvnor.client.modeldriven.testing.Fixture' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable from field 'fixtures' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Vector<org.drools.guvnor.client.modeldriven.dt.MetadataCol>
+java.util.Vector<org.drools.guvnor.client.modeldriven.testing.Fixture>
    Serialization status
       Instantiable
    Path
-      'java.util.Vector<org.drools.guvnor.client.modeldriven.dt.MetadataCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.MetadataCol>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.dt.MetadataCol>' is reachable from field 'metadataCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
-      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable from field 'fixtures' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Vector<org.drools.guvnor.client.rulefloweditor.TransferConnection>
+java.util.Vector<org.drools.guvnor.client.modeldriven.testing.FieldData>
    Serialization status
       Instantiable
    Path
-      'java.util.Vector<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable as a supertype of type 'class java.util.Stack<org.drools.guvnor.client.rulefloweditor.TransferConnection>'
-      'java.util.Stack<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable as a subtype of type 'interface java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>'
-      'java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable from field 'connections' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
-      'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.FieldData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FieldData>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FieldData>' is reachable from field 'fieldData' of type 'org.drools.guvnor.client.modeldriven.testing.FactData'
+      'org.drools.guvnor.client.modeldriven.testing.FactData' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.testing.FactData'
+      'org.drools.guvnor.client.modeldriven.testing.FactData' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable from field 'globals' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Vector<org.drools.guvnor.client.modeldriven.MethodInfo>
+java.util.Vector<org.drools.guvnor.client.modeldriven.testing.FactData>
    Serialization status
       Instantiable
    Path
-      'java.util.Vector<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable from type argument 1 of type 'java.util.LinkedHashMap<K, V>'
-      'java.util.LinkedHashMap<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable as a subtype of type 'interface java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>'
-      'java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable from field 'methodInfos' of type 'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine'
-      'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable from field 'globals' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Vector<java.lang.String>
+java.util.Vector<org.drools.guvnor.client.rpc.DiscussionRecord>
    Serialization status
       Instantiable
    Path
-      'java.util.Vector<java.lang.String>' is reachable as a subtype of type 'interface java.util.List<java.lang.String>'
-      'java.util.List<java.lang.String>' is reachable from field 'params' of type 'org.drools.guvnor.client.modeldriven.MethodInfo'
-      'org.drools.guvnor.client.modeldriven.MethodInfo' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.MethodInfo'
-      Type 'org.drools.guvnor.client.modeldriven.MethodInfo' is reachable from array type 'org.drools.guvnor.client.modeldriven.MethodInfo[]'
-      'org.drools.guvnor.client.modeldriven.MethodInfo' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable from type argument 1 of type 'java.util.LinkedHashMap<K, V>'
-      'java.util.LinkedHashMap<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable as a subtype of type 'interface java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>'
-      'java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable from field 'methodInfos' of type 'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine'
-      'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
-      'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
-      'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
-      Started from 'org.drools.guvnor.client.rpc.RuleAsset'
+      'java.util.Vector<org.drools.guvnor.client.rpc.DiscussionRecord>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rpc.DiscussionRecord>'
+      Started from 'java.util.List<org.drools.guvnor.client.rpc.DiscussionRecord>'
 
-java.util.Vector<org.drools.guvnor.client.modeldriven.testing.FieldData>
+java.util.Vector<org.drools.guvnor.client.factmodel.FieldMetaModel>
    Serialization status
       Instantiable
    Path
-      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.FieldData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FieldData>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FieldData>' is reachable from field 'fieldData' of type 'org.drools.guvnor.client.modeldriven.testing.FactData'
-      'org.drools.guvnor.client.modeldriven.testing.FactData' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Vector<org.drools.guvnor.client.factmodel.FieldMetaModel>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.factmodel.FieldMetaModel>'
+      'java.util.List<org.drools.guvnor.client.factmodel.FieldMetaModel>' is reachable from field 'fields' of type 'org.drools.guvnor.client.factmodel.FactMetaModel'
+      'org.drools.guvnor.client.factmodel.FactMetaModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -1498,74 +1523,79 @@
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Vector<org.drools.guvnor.client.factmodel.FactMetaModel>
+java.util.Vector<java.lang.String>
    Serialization status
       Instantiable
    Path
-      'java.util.Vector<org.drools.guvnor.client.factmodel.FactMetaModel>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.factmodel.FactMetaModel>'
-      'java.util.List<org.drools.guvnor.client.factmodel.FactMetaModel>' is reachable from field 'models' of type 'org.drools.guvnor.client.factmodel.FactModels'
-      'org.drools.guvnor.client.factmodel.FactModels' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Vector<java.lang.String>' is reachable as a subtype of type 'interface java.util.List<java.lang.String>'
+      'java.util.List<java.lang.String>' is reachable from field 'rules' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Vector<org.drools.guvnor.client.rpc.DiscussionRecord>
+java.util.Vector<org.drools.guvnor.client.modeldriven.dt.MetadataCol>
    Serialization status
       Instantiable
    Path
-      'java.util.Vector<org.drools.guvnor.client.rpc.DiscussionRecord>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rpc.DiscussionRecord>'
-      Started from 'java.util.List<org.drools.guvnor.client.rpc.DiscussionRecord>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.dt.MetadataCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.MetadataCol>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.dt.MetadataCol>' is reachable from field 'metadataCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
+      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
+      'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
+      Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Vector<org.drools.guvnor.client.factmodel.FieldMetaModel>
+java.util.Vector<org.drools.guvnor.client.modeldriven.dt.AttributeCol>
    Serialization status
       Instantiable
    Path
-      'java.util.Vector<org.drools.guvnor.client.factmodel.FieldMetaModel>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.factmodel.FieldMetaModel>'
-      'java.util.List<org.drools.guvnor.client.factmodel.FieldMetaModel>' is reachable from field 'fields' of type 'org.drools.guvnor.client.factmodel.FactMetaModel'
-      'org.drools.guvnor.client.factmodel.FactMetaModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.dt.AttributeCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.AttributeCol>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.dt.AttributeCol>' is reachable from field 'attributeCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
+      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Vector<org.drools.guvnor.client.modeldriven.testing.VerifyField>
+java.util.Vector<org.drools.guvnor.client.modeldriven.dt.ConditionCol>
    Serialization status
       Instantiable
    Path
-      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable from field 'fieldValues' of type 'org.drools.guvnor.client.modeldriven.testing.VerifyFact'
-      'org.drools.guvnor.client.modeldriven.testing.VerifyFact' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.dt.ConditionCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.ConditionCol>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.dt.ConditionCol>' is reachable from field 'conditionCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
+      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Vector<org.drools.guvnor.client.modeldriven.testing.FactData>
+java.util.Vector<org.drools.guvnor.client.modeldriven.dt.ActionCol>
    Serialization status
       Instantiable
    Path
-      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable from field 'globals' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
-      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable from field 'actionCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
+      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Vector<org.drools.guvnor.client.modeldriven.testing.Fixture>
+java.util.Vector<org.drools.guvnor.client.rulefloweditor.TransferNode>
    Serialization status
       Instantiable
    Path
-      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable from field 'fixtures' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
-      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'java.util.Vector<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
+      'java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable from field 'nodes' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
+      'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
 
-java.util.Vector<org.drools.guvnor.client.rulefloweditor.TransferNode>
+java.util.Vector<org.drools.guvnor.client.rulefloweditor.TransferConnection>
    Serialization status
       Instantiable
    Path
-      'java.util.Vector<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
-      'java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable from field 'nodes' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
+      'java.util.Vector<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable as a supertype of type 'class java.util.Stack<org.drools.guvnor.client.rulefloweditor.TransferConnection>'
+      'java.util.Stack<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable as a subtype of type 'interface java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>'
+      'java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable from field 'connections' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
       'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
@@ -1613,9 +1643,8 @@
       Instantiable
    Path
       'org.drools.guvnor.client.factmodel.FieldMetaModel' is reachable as a subtype of type 'class org.drools.guvnor.client.factmodel.FieldMetaModel'
-      Type 'org.drools.guvnor.client.factmodel.FieldMetaModel' is reachable from array type 'org.drools.guvnor.client.factmodel.FieldMetaModel[]'
-      'org.drools.guvnor.client.factmodel.FieldMetaModel' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.factmodel.FieldMetaModel>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.factmodel.FieldMetaModel>'
+      'org.drools.guvnor.client.factmodel.FieldMetaModel' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.factmodel.FieldMetaModel>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.factmodel.FieldMetaModel>'
       'java.util.List<org.drools.guvnor.client.factmodel.FieldMetaModel>' is reachable from field 'fields' of type 'org.drools.guvnor.client.factmodel.FactMetaModel'
       'org.drools.guvnor.client.factmodel.FactMetaModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -1638,14 +1667,7 @@
    Serialization status
       Instantiable
    Path
-      'org.drools.guvnor.client.modeldriven.MethodInfo' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.MethodInfo'
-      Type 'org.drools.guvnor.client.modeldriven.MethodInfo' is reachable from array type 'org.drools.guvnor.client.modeldriven.MethodInfo[]'
-      'org.drools.guvnor.client.modeldriven.MethodInfo' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>'
-      'java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>' is reachable from type argument 1 of type 'java.util.LinkedHashMap<K, V>'
-      'java.util.LinkedHashMap<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable as a subtype of type 'interface java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>'
-      'java.util.Map<java.lang.String, java.util.List<org.drools.guvnor.client.modeldriven.MethodInfo>>' is reachable from field 'methodInfos' of type 'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine'
-      'org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.MethodInfo' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -1702,9 +1724,9 @@
       'org.drools.guvnor.client.modeldriven.brl.ActionFieldFunction' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.brl.ActionFieldValue'
       Type 'org.drools.guvnor.client.modeldriven.brl.ActionFieldValue' is reachable from array type 'org.drools.guvnor.client.modeldriven.brl.ActionFieldValue[]'
       'org.drools.guvnor.client.modeldriven.brl.ActionFieldValue[]' is reachable from field 'fieldValues' of type 'org.drools.guvnor.client.modeldriven.brl.ActionFieldList'
-      'org.drools.guvnor.client.modeldriven.brl.ActionFieldList' is reachable as a supertype of type 'class org.drools.guvnor.client.modeldriven.brl.ActionSetField'
-      'org.drools.guvnor.client.modeldriven.brl.ActionSetField' is reachable as a supertype of type 'class org.drools.guvnor.client.modeldriven.brl.ActionUpdateField'
-      'org.drools.guvnor.client.modeldriven.brl.ActionUpdateField' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.ActionFieldList' is reachable as a supertype of type 'class org.drools.guvnor.client.modeldriven.brl.ActionInsertFact'
+      'org.drools.guvnor.client.modeldriven.brl.ActionInsertFact' is reachable as a supertype of type 'class org.drools.guvnor.client.modeldriven.brl.ActionInsertLogicalFact'
+      'org.drools.guvnor.client.modeldriven.brl.ActionInsertLogicalFact' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -1714,9 +1736,9 @@
       Instantiable
    Path
       'org.drools.guvnor.client.modeldriven.brl.ActionFieldValue[]' is reachable from field 'fieldValues' of type 'org.drools.guvnor.client.modeldriven.brl.ActionFieldList'
-      'org.drools.guvnor.client.modeldriven.brl.ActionFieldList' is reachable as a supertype of type 'class org.drools.guvnor.client.modeldriven.brl.ActionSetField'
-      'org.drools.guvnor.client.modeldriven.brl.ActionSetField' is reachable as a supertype of type 'class org.drools.guvnor.client.modeldriven.brl.ActionUpdateField'
-      'org.drools.guvnor.client.modeldriven.brl.ActionUpdateField' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.ActionFieldList' is reachable as a supertype of type 'class org.drools.guvnor.client.modeldriven.brl.ActionInsertFact'
+      'org.drools.guvnor.client.modeldriven.brl.ActionInsertFact' is reachable as a supertype of type 'class org.drools.guvnor.client.modeldriven.brl.ActionInsertLogicalFact'
+      'org.drools.guvnor.client.modeldriven.brl.ActionInsertLogicalFact' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -1725,9 +1747,9 @@
    Serialization status
       Field serializable
    Path
-      'org.drools.guvnor.client.modeldriven.brl.ActionFieldList' is reachable as a supertype of type 'class org.drools.guvnor.client.modeldriven.brl.ActionSetField'
-      'org.drools.guvnor.client.modeldriven.brl.ActionSetField' is reachable as a supertype of type 'class org.drools.guvnor.client.modeldriven.brl.ActionUpdateField'
-      'org.drools.guvnor.client.modeldriven.brl.ActionUpdateField' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.ActionFieldList' is reachable as a supertype of type 'class org.drools.guvnor.client.modeldriven.brl.ActionInsertFact'
+      'org.drools.guvnor.client.modeldriven.brl.ActionInsertFact' is reachable as a supertype of type 'class org.drools.guvnor.client.modeldriven.brl.ActionInsertLogicalFact'
+      'org.drools.guvnor.client.modeldriven.brl.ActionInsertLogicalFact' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -1746,12 +1768,7 @@
    Serialization status
       Instantiable
    Path
-      'org.drools.guvnor.client.modeldriven.brl.ActionFieldValue' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.brl.ActionFieldValue'
-      Type 'org.drools.guvnor.client.modeldriven.brl.ActionFieldValue' is reachable from array type 'org.drools.guvnor.client.modeldriven.brl.ActionFieldValue[]'
-      'org.drools.guvnor.client.modeldriven.brl.ActionFieldValue[]' is reachable from field 'fieldValues' of type 'org.drools.guvnor.client.modeldriven.brl.ActionFieldList'
-      'org.drools.guvnor.client.modeldriven.brl.ActionFieldList' is reachable as a supertype of type 'class org.drools.guvnor.client.modeldriven.brl.ActionSetField'
-      'org.drools.guvnor.client.modeldriven.brl.ActionSetField' is reachable as a supertype of type 'class org.drools.guvnor.client.modeldriven.brl.ActionUpdateField'
-      'org.drools.guvnor.client.modeldriven.brl.ActionUpdateField' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.ActionFieldValue' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -1761,9 +1778,9 @@
       Instantiable
    Path
       'org.drools.guvnor.client.modeldriven.brl.ActionFieldValue[]' is reachable from field 'fieldValues' of type 'org.drools.guvnor.client.modeldriven.brl.ActionFieldList'
-      'org.drools.guvnor.client.modeldriven.brl.ActionFieldList' is reachable as a supertype of type 'class org.drools.guvnor.client.modeldriven.brl.ActionSetField'
-      'org.drools.guvnor.client.modeldriven.brl.ActionSetField' is reachable as a supertype of type 'class org.drools.guvnor.client.modeldriven.brl.ActionUpdateField'
-      'org.drools.guvnor.client.modeldriven.brl.ActionUpdateField' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.ActionFieldList' is reachable as a supertype of type 'class org.drools.guvnor.client.modeldriven.brl.ActionInsertFact'
+      'org.drools.guvnor.client.modeldriven.brl.ActionInsertFact' is reachable as a supertype of type 'class org.drools.guvnor.client.modeldriven.brl.ActionInsertLogicalFact'
+      'org.drools.guvnor.client.modeldriven.brl.ActionInsertLogicalFact' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -1791,7 +1808,8 @@
    Serialization status
       Instantiable
    Path
-      'org.drools.guvnor.client.modeldriven.brl.ActionInsertFact' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.ActionInsertFact' is reachable as a supertype of type 'class org.drools.guvnor.client.modeldriven.brl.ActionInsertLogicalFact'
+      'org.drools.guvnor.client.modeldriven.brl.ActionInsertLogicalFact' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -1848,8 +1866,7 @@
    Serialization status
       Instantiable
    Path
-      'org.drools.guvnor.client.modeldriven.brl.ActionSetField' is reachable as a supertype of type 'class org.drools.guvnor.client.modeldriven.brl.ActionUpdateField'
-      'org.drools.guvnor.client.modeldriven.brl.ActionUpdateField' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.ActionSetField' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -1906,12 +1923,7 @@
    Serialization status
       Instantiable
    Path
-      'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint'
-      'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint' is reachable from field 'constraintList' of type 'org.drools.guvnor.client.modeldriven.brl.FactPattern'
-      'org.drools.guvnor.client.modeldriven.brl.FactPattern' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.brl.FactPattern'
-      Type 'org.drools.guvnor.client.modeldriven.brl.FactPattern' is reachable from array type 'org.drools.guvnor.client.modeldriven.brl.FactPattern[]'
-      'org.drools.guvnor.client.modeldriven.brl.FactPattern[]' is reachable from field 'patterns' of type 'org.drools.guvnor.client.modeldriven.brl.CompositeFactPattern'
-      'org.drools.guvnor.client.modeldriven.brl.CompositeFactPattern' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -1921,12 +1933,7 @@
       Instantiable
    Path
       'org.drools.guvnor.client.modeldriven.brl.FieldConstraint[]' is reachable from field 'constraints' of type 'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint'
-      'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint'
-      'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint' is reachable from field 'constraintList' of type 'org.drools.guvnor.client.modeldriven.brl.FactPattern'
-      'org.drools.guvnor.client.modeldriven.brl.FactPattern' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.brl.FactPattern'
-      Type 'org.drools.guvnor.client.modeldriven.brl.FactPattern' is reachable from array type 'org.drools.guvnor.client.modeldriven.brl.FactPattern[]'
-      'org.drools.guvnor.client.modeldriven.brl.FactPattern[]' is reachable from field 'patterns' of type 'org.drools.guvnor.client.modeldriven.brl.CompositeFactPattern'
-      'org.drools.guvnor.client.modeldriven.brl.CompositeFactPattern' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -1941,12 +1948,7 @@
       'org.drools.guvnor.client.modeldriven.brl.SingleFieldConstraint' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.FieldConstraint'
       Type 'org.drools.guvnor.client.modeldriven.brl.FieldConstraint' is reachable from array type 'org.drools.guvnor.client.modeldriven.brl.FieldConstraint[]'
       'org.drools.guvnor.client.modeldriven.brl.FieldConstraint[]' is reachable from field 'constraints' of type 'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint'
-      'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint'
-      'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint' is reachable from field 'constraintList' of type 'org.drools.guvnor.client.modeldriven.brl.FactPattern'
-      'org.drools.guvnor.client.modeldriven.brl.FactPattern' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.brl.FactPattern'
-      Type 'org.drools.guvnor.client.modeldriven.brl.FactPattern' is reachable from array type 'org.drools.guvnor.client.modeldriven.brl.FactPattern[]'
-      'org.drools.guvnor.client.modeldriven.brl.FactPattern[]' is reachable from field 'patterns' of type 'org.drools.guvnor.client.modeldriven.brl.CompositeFactPattern'
-      'org.drools.guvnor.client.modeldriven.brl.CompositeFactPattern' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -1959,12 +1961,7 @@
       'org.drools.guvnor.client.modeldriven.brl.SingleFieldConstraint' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.FieldConstraint'
       Type 'org.drools.guvnor.client.modeldriven.brl.FieldConstraint' is reachable from array type 'org.drools.guvnor.client.modeldriven.brl.FieldConstraint[]'
       'org.drools.guvnor.client.modeldriven.brl.FieldConstraint[]' is reachable from field 'constraints' of type 'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint'
-      'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint'
-      'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint' is reachable from field 'constraintList' of type 'org.drools.guvnor.client.modeldriven.brl.FactPattern'
-      'org.drools.guvnor.client.modeldriven.brl.FactPattern' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.brl.FactPattern'
-      Type 'org.drools.guvnor.client.modeldriven.brl.FactPattern' is reachable from array type 'org.drools.guvnor.client.modeldriven.brl.FactPattern[]'
-      'org.drools.guvnor.client.modeldriven.brl.FactPattern[]' is reachable from field 'patterns' of type 'org.drools.guvnor.client.modeldriven.brl.CompositeFactPattern'
-      'org.drools.guvnor.client.modeldriven.brl.CompositeFactPattern' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -1995,10 +1992,7 @@
    Serialization status
       Instantiable
    Path
-      'org.drools.guvnor.client.modeldriven.brl.FactPattern' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.brl.FactPattern'
-      Type 'org.drools.guvnor.client.modeldriven.brl.FactPattern' is reachable from array type 'org.drools.guvnor.client.modeldriven.brl.FactPattern[]'
-      'org.drools.guvnor.client.modeldriven.brl.FactPattern[]' is reachable from field 'patterns' of type 'org.drools.guvnor.client.modeldriven.brl.CompositeFactPattern'
-      'org.drools.guvnor.client.modeldriven.brl.CompositeFactPattern' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.FactPattern' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2018,12 +2012,7 @@
       Instantiable
    Path
       'org.drools.guvnor.client.modeldriven.brl.FieldConstraint[]' is reachable from field 'constraints' of type 'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint'
-      'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint'
-      'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint' is reachable from field 'constraintList' of type 'org.drools.guvnor.client.modeldriven.brl.FactPattern'
-      'org.drools.guvnor.client.modeldriven.brl.FactPattern' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.brl.FactPattern'
-      Type 'org.drools.guvnor.client.modeldriven.brl.FactPattern' is reachable from array type 'org.drools.guvnor.client.modeldriven.brl.FactPattern[]'
-      'org.drools.guvnor.client.modeldriven.brl.FactPattern[]' is reachable from field 'patterns' of type 'org.drools.guvnor.client.modeldriven.brl.CompositeFactPattern'
-      'org.drools.guvnor.client.modeldriven.brl.CompositeFactPattern' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2071,16 +2060,7 @@
    Serialization status
       Instantiable
    Path
-      'org.drools.guvnor.client.modeldriven.brl.ISingleFieldConstraint' is reachable as a supertype of type 'class org.drools.guvnor.client.modeldriven.brl.SingleFieldConstraint'
-      'org.drools.guvnor.client.modeldriven.brl.SingleFieldConstraint' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.FieldConstraint'
-      Type 'org.drools.guvnor.client.modeldriven.brl.FieldConstraint' is reachable from array type 'org.drools.guvnor.client.modeldriven.brl.FieldConstraint[]'
-      'org.drools.guvnor.client.modeldriven.brl.FieldConstraint[]' is reachable from field 'constraints' of type 'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint'
-      'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint'
-      'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint' is reachable from field 'constraintList' of type 'org.drools.guvnor.client.modeldriven.brl.FactPattern'
-      'org.drools.guvnor.client.modeldriven.brl.FactPattern' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.brl.FactPattern'
-      Type 'org.drools.guvnor.client.modeldriven.brl.FactPattern' is reachable from array type 'org.drools.guvnor.client.modeldriven.brl.FactPattern[]'
-      'org.drools.guvnor.client.modeldriven.brl.FactPattern[]' is reachable from field 'patterns' of type 'org.drools.guvnor.client.modeldriven.brl.CompositeFactPattern'
-      'org.drools.guvnor.client.modeldriven.brl.CompositeFactPattern' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.ISingleFieldConstraint' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2108,7 +2088,10 @@
    Serialization status
       Instantiable
    Path
-      'org.drools.guvnor.client.modeldriven.brl.RuleMetadata' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.RuleMetadata' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.brl.RuleMetadata'
+      Type 'org.drools.guvnor.client.modeldriven.brl.RuleMetadata' is reachable from array type 'org.drools.guvnor.client.modeldriven.brl.RuleMetadata[]'
+      'org.drools.guvnor.client.modeldriven.brl.RuleMetadata[]' is reachable from field 'metadataList' of type 'org.drools.guvnor.client.modeldriven.brl.RuleModel'
+      'org.drools.guvnor.client.modeldriven.brl.RuleModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2139,12 +2122,7 @@
       'org.drools.guvnor.client.modeldriven.brl.SingleFieldConstraint' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.FieldConstraint'
       Type 'org.drools.guvnor.client.modeldriven.brl.FieldConstraint' is reachable from array type 'org.drools.guvnor.client.modeldriven.brl.FieldConstraint[]'
       'org.drools.guvnor.client.modeldriven.brl.FieldConstraint[]' is reachable from field 'constraints' of type 'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint'
-      'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint'
-      'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint' is reachable from field 'constraintList' of type 'org.drools.guvnor.client.modeldriven.brl.FactPattern'
-      'org.drools.guvnor.client.modeldriven.brl.FactPattern' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.brl.FactPattern'
-      Type 'org.drools.guvnor.client.modeldriven.brl.FactPattern' is reachable from array type 'org.drools.guvnor.client.modeldriven.brl.FactPattern[]'
-      'org.drools.guvnor.client.modeldriven.brl.FactPattern[]' is reachable from field 'patterns' of type 'org.drools.guvnor.client.modeldriven.brl.CompositeFactPattern'
-      'org.drools.guvnor.client.modeldriven.brl.CompositeFactPattern' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2154,12 +2132,7 @@
       Instantiable
    Path
       'org.drools.guvnor.client.modeldriven.brl.FieldConstraint[]' is reachable from field 'constraints' of type 'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint'
-      'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint'
-      'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint' is reachable from field 'constraintList' of type 'org.drools.guvnor.client.modeldriven.brl.FactPattern'
-      'org.drools.guvnor.client.modeldriven.brl.FactPattern' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.brl.FactPattern'
-      Type 'org.drools.guvnor.client.modeldriven.brl.FactPattern' is reachable from array type 'org.drools.guvnor.client.modeldriven.brl.FactPattern[]'
-      'org.drools.guvnor.client.modeldriven.brl.FactPattern[]' is reachable from field 'patterns' of type 'org.drools.guvnor.client.modeldriven.brl.CompositeFactPattern'
-      'org.drools.guvnor.client.modeldriven.brl.CompositeFactPattern' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.brl.CompositeFieldConstraint' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2168,8 +2141,7 @@
    Serialization status
       Instantiable
    Path
-      'org.drools.guvnor.client.modeldriven.dt.ActionCol' is reachable as a supertype of type 'class org.drools.guvnor.client.modeldriven.dt.ActionInsertFactCol'
-      'org.drools.guvnor.client.modeldriven.dt.ActionInsertFactCol' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.dt.ActionCol' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2190,7 +2162,11 @@
    Serialization status
       Instantiable
    Path
-      'org.drools.guvnor.client.modeldriven.dt.ActionInsertFactCol' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.dt.ActionInsertFactCol' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.dt.ActionCol'
+      'org.drools.guvnor.client.modeldriven.dt.ActionCol' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable from field 'actionCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
+      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2211,7 +2187,11 @@
    Serialization status
       Instantiable
    Path
-      'org.drools.guvnor.client.modeldriven.dt.ActionRetractFactCol' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.dt.ActionRetractFactCol' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.dt.ActionCol'
+      'org.drools.guvnor.client.modeldriven.dt.ActionCol' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable from field 'actionCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
+      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2233,9 +2213,8 @@
       Instantiable
    Path
       'org.drools.guvnor.client.modeldriven.dt.ActionSetFieldCol' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.dt.ActionCol'
-      Type 'org.drools.guvnor.client.modeldriven.dt.ActionCol' is reachable from array type 'org.drools.guvnor.client.modeldriven.dt.ActionCol[]'
-      'org.drools.guvnor.client.modeldriven.dt.ActionCol' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>'
+      'org.drools.guvnor.client.modeldriven.dt.ActionCol' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>'
       'java.util.List<org.drools.guvnor.client.modeldriven.dt.ActionCol>' is reachable from field 'actionCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
       'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2258,7 +2237,11 @@
    Serialization status
       Instantiable
    Path
-      'org.drools.guvnor.client.modeldriven.dt.AttributeCol' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.dt.AttributeCol' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.dt.AttributeCol'
+      'org.drools.guvnor.client.modeldriven.dt.AttributeCol' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.dt.AttributeCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.AttributeCol>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.dt.AttributeCol>' is reachable from field 'attributeCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
+      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2300,8 +2283,8 @@
    Serialization status
       Instantiable
    Path
-      'org.drools.guvnor.client.modeldriven.dt.DTColumnConfig' is reachable as a supertype of type 'class org.drools.guvnor.client.modeldriven.dt.ConditionCol'
-      'org.drools.guvnor.client.modeldriven.dt.ConditionCol' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.dt.DTColumnConfig' is reachable as a supertype of type 'class org.drools.guvnor.client.modeldriven.dt.ActionCol'
+      'org.drools.guvnor.client.modeldriven.dt.ActionCol' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2319,7 +2302,11 @@
    Serialization status
       Instantiable
    Path
-      'org.drools.guvnor.client.modeldriven.dt.MetadataCol' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.dt.MetadataCol' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.dt.MetadataCol'
+      'org.drools.guvnor.client.modeldriven.dt.MetadataCol' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.dt.MetadataCol>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.dt.MetadataCol>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.dt.MetadataCol>' is reachable from field 'metadataCols' of type 'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable'
+      'org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2341,9 +2328,8 @@
       Instantiable
    Path
       'org.drools.guvnor.client.modeldriven.testing.ExecutionTrace' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.testing.Fixture'
-      Type 'org.drools.guvnor.client.modeldriven.testing.Fixture' is reachable from array type 'org.drools.guvnor.client.modeldriven.testing.Fixture[]'
-      'org.drools.guvnor.client.modeldriven.testing.Fixture' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
+      'org.drools.guvnor.client.modeldriven.testing.Fixture' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
       'java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable from field 'fixtures' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
       'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2378,7 +2364,11 @@
    Serialization status
       Instantiable
    Path
-      'org.drools.guvnor.client.modeldriven.testing.FactData' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.testing.FactData' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.testing.FactData'
+      'org.drools.guvnor.client.modeldriven.testing.FactData' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable from field 'globals' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2400,11 +2390,14 @@
       Instantiable
    Path
       'org.drools.guvnor.client.modeldriven.testing.FieldData' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.testing.FieldData'
-      Type 'org.drools.guvnor.client.modeldriven.testing.FieldData' is reachable from array type 'org.drools.guvnor.client.modeldriven.testing.FieldData[]'
-      'org.drools.guvnor.client.modeldriven.testing.FieldData' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.testing.FieldData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FieldData>'
+      'org.drools.guvnor.client.modeldriven.testing.FieldData' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.FieldData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FieldData>'
       'java.util.List<org.drools.guvnor.client.modeldriven.testing.FieldData>' is reachable from field 'fieldData' of type 'org.drools.guvnor.client.modeldriven.testing.FactData'
-      'org.drools.guvnor.client.modeldriven.testing.FactData' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.testing.FactData' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.testing.FactData'
+      'org.drools.guvnor.client.modeldriven.testing.FactData' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable from field 'globals' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2416,7 +2409,11 @@
       'org.drools.guvnor.client.modeldriven.testing.FieldData' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
       'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.testing.FieldData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FieldData>'
       'java.util.List<org.drools.guvnor.client.modeldriven.testing.FieldData>' is reachable from field 'fieldData' of type 'org.drools.guvnor.client.modeldriven.testing.FactData'
-      'org.drools.guvnor.client.modeldriven.testing.FactData' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.testing.FactData' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.testing.FactData'
+      'org.drools.guvnor.client.modeldriven.testing.FactData' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.FactData>' is reachable from field 'globals' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2437,7 +2434,11 @@
    Serialization status
       Instantiable
    Path
-      'org.drools.guvnor.client.modeldriven.testing.RetractFact' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.testing.RetractFact' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.testing.Fixture'
+      'org.drools.guvnor.client.modeldriven.testing.Fixture' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable from field 'fixtures' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2467,7 +2468,11 @@
    Serialization status
       Instantiable
    Path
-      'org.drools.guvnor.client.modeldriven.testing.VerifyFact' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.testing.VerifyFact' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.testing.Fixture'
+      'org.drools.guvnor.client.modeldriven.testing.Fixture' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable from field 'fixtures' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2488,7 +2493,15 @@
    Serialization status
       Instantiable
    Path
-      'org.drools.guvnor.client.modeldriven.testing.VerifyField' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.testing.VerifyField' is reachable as a subtype of type 'class org.drools.guvnor.client.modeldriven.testing.VerifyField'
+      'org.drools.guvnor.client.modeldriven.testing.VerifyField' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable from field 'fieldValues' of type 'org.drools.guvnor.client.modeldriven.testing.VerifyFact'
+      'org.drools.guvnor.client.modeldriven.testing.VerifyFact' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.testing.Fixture'
+      'org.drools.guvnor.client.modeldriven.testing.Fixture' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable from field 'fixtures' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2500,7 +2513,11 @@
       'org.drools.guvnor.client.modeldriven.testing.VerifyField' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
       'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>'
       'java.util.List<org.drools.guvnor.client.modeldriven.testing.VerifyField>' is reachable from field 'fieldValues' of type 'org.drools.guvnor.client.modeldriven.testing.VerifyFact'
-      'org.drools.guvnor.client.modeldriven.testing.VerifyFact' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
+      'org.drools.guvnor.client.modeldriven.testing.VerifyFact' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.testing.Fixture'
+      'org.drools.guvnor.client.modeldriven.testing.Fixture' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
+      'java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable from field 'fixtures' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
+      'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
       'org.drools.guvnor.client.rpc.RuleAsset' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.RuleAsset'
       Started from 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2510,9 +2527,8 @@
       Instantiable
    Path
       'org.drools.guvnor.client.modeldriven.testing.VerifyRuleFired' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.testing.Fixture'
-      Type 'org.drools.guvnor.client.modeldriven.testing.Fixture' is reachable from array type 'org.drools.guvnor.client.modeldriven.testing.Fixture[]'
-      'org.drools.guvnor.client.modeldriven.testing.Fixture' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
+      'org.drools.guvnor.client.modeldriven.testing.Fixture' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>'
       'java.util.List<org.drools.guvnor.client.modeldriven.testing.Fixture>' is reachable from field 'fixtures' of type 'org.drools.guvnor.client.modeldriven.testing.Scenario'
       'org.drools.guvnor.client.modeldriven.testing.Scenario' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2635,9 +2651,8 @@
       Instantiable
    Path
       'org.drools.guvnor.client.rpc.DiscussionRecord' is reachable as a subtype of type 'class org.drools.guvnor.client.rpc.DiscussionRecord'
-      Type 'org.drools.guvnor.client.rpc.DiscussionRecord' is reachable from array type 'org.drools.guvnor.client.rpc.DiscussionRecord[]'
-      'org.drools.guvnor.client.rpc.DiscussionRecord' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.rpc.DiscussionRecord>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rpc.DiscussionRecord>'
+      'org.drools.guvnor.client.rpc.DiscussionRecord' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.rpc.DiscussionRecord>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rpc.DiscussionRecord>'
       Started from 'java.util.List<org.drools.guvnor.client.rpc.DiscussionRecord>'
 
 org.drools.guvnor.client.rpc.DiscussionRecord[]
@@ -2859,9 +2874,8 @@
       Instantiable
    Path
       'org.drools.guvnor.client.ruleeditor.PropertyHolder' is reachable as a subtype of type 'class org.drools.guvnor.client.ruleeditor.PropertyHolder'
-      Type 'org.drools.guvnor.client.ruleeditor.PropertyHolder' is reachable from array type 'org.drools.guvnor.client.ruleeditor.PropertyHolder[]'
-      'org.drools.guvnor.client.ruleeditor.PropertyHolder' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.ruleeditor.PropertyHolder>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.ruleeditor.PropertyHolder>'
+      'org.drools.guvnor.client.ruleeditor.PropertyHolder' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.ruleeditor.PropertyHolder>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.ruleeditor.PropertyHolder>'
       'java.util.List<org.drools.guvnor.client.ruleeditor.PropertyHolder>' is reachable from field 'list' of type 'org.drools.guvnor.client.ruleeditor.PropertiesHolder'
       'org.drools.guvnor.client.ruleeditor.PropertiesHolder' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2885,9 +2899,8 @@
       Instantiable
    Path
       'org.drools.guvnor.client.rulefloweditor.ElementContainerTransferNode' is reachable as a subtype of type 'class org.drools.guvnor.client.rulefloweditor.TransferNode'
-      Type 'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from array type 'org.drools.guvnor.client.rulefloweditor.TransferNode[]'
-      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
+      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
       'java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable from field 'nodes' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
       'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2911,9 +2924,8 @@
       Instantiable
    Path
       'org.drools.guvnor.client.rulefloweditor.HumanTaskTransferNode' is reachable as a subtype of type 'class org.drools.guvnor.client.rulefloweditor.TransferNode'
-      Type 'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from array type 'org.drools.guvnor.client.rulefloweditor.TransferNode[]'
-      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
+      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
       'java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable from field 'nodes' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
       'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2937,13 +2949,12 @@
       Instantiable
    Path
       'org.drools.guvnor.client.rulefloweditor.SplitNode.ConnectionRef' is reachable as a subtype of type 'class org.drools.guvnor.client.rulefloweditor.SplitNode.ConnectionRef'
-      'org.drools.guvnor.client.rulefloweditor.SplitNode.ConnectionRef' is reachable from type argument 0 of type 'java.util.LinkedHashMap<K, V>'
-      'java.util.LinkedHashMap<org.drools.guvnor.client.rulefloweditor.SplitNode.ConnectionRef, org.drools.guvnor.client.rulefloweditor.SplitNode.Constraint>' is reachable as a subtype of type 'interface java.util.Map<org.drools.guvnor.client.rulefloweditor.SplitNode.ConnectionRef, org.drools.guvnor.client.rulefloweditor.SplitNode.Constraint>'
+      'org.drools.guvnor.client.rulefloweditor.SplitNode.ConnectionRef' is reachable from type argument 0 of type 'java.util.IdentityHashMap<K, V>'
+      'java.util.IdentityHashMap<org.drools.guvnor.client.rulefloweditor.SplitNode.ConnectionRef, org.drools.guvnor.client.rulefloweditor.SplitNode.Constraint>' is reachable as a subtype of type 'interface java.util.Map<org.drools.guvnor.client.rulefloweditor.SplitNode.ConnectionRef, org.drools.guvnor.client.rulefloweditor.SplitNode.Constraint>'
       'java.util.Map<org.drools.guvnor.client.rulefloweditor.SplitNode.ConnectionRef, org.drools.guvnor.client.rulefloweditor.SplitNode.Constraint>' is reachable from field 'constraints' of type 'org.drools.guvnor.client.rulefloweditor.SplitTransferNode'
       'org.drools.guvnor.client.rulefloweditor.SplitTransferNode' is reachable as a subtype of type 'class org.drools.guvnor.client.rulefloweditor.TransferNode'
-      Type 'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from array type 'org.drools.guvnor.client.rulefloweditor.TransferNode[]'
-      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
+      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
       'java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable from field 'nodes' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
       'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2959,9 +2970,8 @@
       'java.util.LinkedHashMap<org.drools.guvnor.client.rulefloweditor.SplitNode.ConnectionRef, org.drools.guvnor.client.rulefloweditor.SplitNode.Constraint>' is reachable as a subtype of type 'interface java.util.Map<org.drools.guvnor.client.rulefloweditor.SplitNode.ConnectionRef, org.drools.guvnor.client.rulefloweditor.SplitNode.Constraint>'
       'java.util.Map<org.drools.guvnor.client.rulefloweditor.SplitNode.ConnectionRef, org.drools.guvnor.client.rulefloweditor.SplitNode.Constraint>' is reachable from field 'constraints' of type 'org.drools.guvnor.client.rulefloweditor.SplitTransferNode'
       'org.drools.guvnor.client.rulefloweditor.SplitTransferNode' is reachable as a subtype of type 'class org.drools.guvnor.client.rulefloweditor.TransferNode'
-      Type 'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from array type 'org.drools.guvnor.client.rulefloweditor.TransferNode[]'
-      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
+      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
       'java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable from field 'nodes' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
       'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2973,9 +2983,8 @@
       Instantiable
    Path
       'org.drools.guvnor.client.rulefloweditor.SplitTransferNode' is reachable as a subtype of type 'class org.drools.guvnor.client.rulefloweditor.TransferNode'
-      Type 'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from array type 'org.drools.guvnor.client.rulefloweditor.TransferNode[]'
-      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
+      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
       'java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable from field 'nodes' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
       'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -2989,9 +2998,8 @@
       'org.drools.guvnor.client.rulefloweditor.SplitTransferNode.Type' is reachable as a subtype of type 'class org.drools.guvnor.client.rulefloweditor.SplitTransferNode.Type'
       'org.drools.guvnor.client.rulefloweditor.SplitTransferNode.Type' is reachable from field 'splitType' of type 'org.drools.guvnor.client.rulefloweditor.SplitTransferNode'
       'org.drools.guvnor.client.rulefloweditor.SplitTransferNode' is reachable as a subtype of type 'class org.drools.guvnor.client.rulefloweditor.TransferNode'
-      Type 'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from array type 'org.drools.guvnor.client.rulefloweditor.TransferNode[]'
-      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
+      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
       'java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable from field 'nodes' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
       'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -3015,8 +3023,8 @@
       Instantiable
    Path
       'org.drools.guvnor.client.rulefloweditor.TransferConnection' is reachable as a subtype of type 'class org.drools.guvnor.client.rulefloweditor.TransferConnection'
-      'org.drools.guvnor.client.rulefloweditor.TransferConnection' is reachable from type argument 0 of type 'java.util.HashSet<E>'
-      'java.util.HashSet<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable as a subtype of type 'interface java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>'
+      'org.drools.guvnor.client.rulefloweditor.TransferConnection' is reachable from type argument 0 of type 'java.util.Stack<E>'
+      'java.util.Stack<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable as a subtype of type 'interface java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>'
       'java.util.Collection<org.drools.guvnor.client.rulefloweditor.TransferConnection>' is reachable from field 'connections' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
       'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -3040,9 +3048,8 @@
       Instantiable
    Path
       'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable as a subtype of type 'class org.drools.guvnor.client.rulefloweditor.TransferNode'
-      Type 'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from array type 'org.drools.guvnor.client.rulefloweditor.TransferNode[]'
-      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
+      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
       'java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable from field 'nodes' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
       'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -3056,9 +3063,8 @@
       'org.drools.guvnor.client.rulefloweditor.TransferNode.Type' is reachable as a subtype of type 'class org.drools.guvnor.client.rulefloweditor.TransferNode.Type'
       'org.drools.guvnor.client.rulefloweditor.TransferNode.Type' is reachable from field 'type' of type 'org.drools.guvnor.client.rulefloweditor.TransferNode'
       'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable as a subtype of type 'class org.drools.guvnor.client.rulefloweditor.TransferNode'
-      Type 'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from array type 'org.drools.guvnor.client.rulefloweditor.TransferNode[]'
-      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
+      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
       'java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable from field 'nodes' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
       'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'
@@ -3082,9 +3088,8 @@
       Instantiable
    Path
       'org.drools.guvnor.client.rulefloweditor.WorkItemTransferNode' is reachable as a subtype of type 'class org.drools.guvnor.client.rulefloweditor.TransferNode'
-      Type 'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from array type 'org.drools.guvnor.client.rulefloweditor.TransferNode[]'
-      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
+      'org.drools.guvnor.client.rulefloweditor.TransferNode' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable as a subtype of type 'interface java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>'
       'java.util.List<org.drools.guvnor.client.rulefloweditor.TransferNode>' is reachable from field 'nodes' of type 'org.drools.guvnor.client.rpc.RuleFlowContentModel'
       'org.drools.guvnor.client.rpc.RuleFlowContentModel' is reachable as a subtype of type 'interface org.drools.guvnor.client.modeldriven.brl.PortableObject'
       'org.drools.guvnor.client.modeldriven.brl.PortableObject' is reachable from field 'content' of type 'org.drools.guvnor.client.rpc.RuleAsset'

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/webapp/org.drools.guvnor.Guvnor-aux/org.drools.guvnor.client.rpc.SecurityService.rpc.log
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/webapp/org.drools.guvnor.Guvnor-aux/org.drools.guvnor.client.rpc.SecurityService.rpc.log	2009-08-25 10:12:16 UTC (rev 29044)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/webapp/org.drools.guvnor.Guvnor-aux/org.drools.guvnor.client.rpc.SecurityService.rpc.log	2009-08-25 12:22:28 UTC (rev 29045)
@@ -1,4 +1,4 @@
-Reachable types computed on: Fri Aug 21 17:37:52 EEST 2009
+Reachable types computed on: Tue Aug 25 15:14:06 EEST 2009
 com.google.gwt.i18n.client.impl.ConstantMap
    Serialization status
       Not serializable
@@ -29,9 +29,8 @@
       Instantiable
    Path
       'java.lang.Integer' is reachable as a subtype of type 'class java.lang.Integer'
-      Type 'java.lang.Integer' is reachable from array type 'java.lang.Integer[]'
-      'java.lang.Integer' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<java.lang.Integer>' is reachable as a subtype of type 'interface java.util.List<java.lang.Integer>'
+      'java.lang.Integer' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<java.lang.Integer>' is reachable as a subtype of type 'interface java.util.List<java.lang.Integer>'
       'java.util.List<java.lang.Integer>' is reachable from field 'list' of type 'org.drools.guvnor.client.security.Capabilities'
       'org.drools.guvnor.client.security.Capabilities' is reachable as a subtype of type 'class org.drools.guvnor.client.security.Capabilities'
       Started from 'org.drools.guvnor.client.security.Capabilities'
@@ -52,9 +51,8 @@
    Path
       'java.lang.Number' is reachable as a supertype of type 'class java.lang.Integer'
       'java.lang.Integer' is reachable as a subtype of type 'class java.lang.Integer'
-      Type 'java.lang.Integer' is reachable from array type 'java.lang.Integer[]'
-      'java.lang.Integer' is reachable from type argument 0 of type 'java.util.Arrays.ArrayList<E>'
-      'java.util.Arrays.ArrayList<java.lang.Integer>' is reachable as a subtype of type 'interface java.util.List<java.lang.Integer>'
+      'java.lang.Integer' is reachable from type argument 0 of type 'java.util.Vector<E>'
+      'java.util.Vector<java.lang.Integer>' is reachable as a subtype of type 'interface java.util.List<java.lang.Integer>'
       'java.util.List<java.lang.Integer>' is reachable from field 'list' of type 'org.drools.guvnor.client.security.Capabilities'
       'org.drools.guvnor.client.security.Capabilities' is reachable as a subtype of type 'class org.drools.guvnor.client.security.Capabilities'
       Started from 'org.drools.guvnor.client.security.Capabilities'
@@ -88,7 +86,8 @@
    Serialization status
       Instantiable
    Path
-      'java.util.ArrayList<java.lang.Integer>' is reachable as a subtype of type 'interface java.util.List<java.lang.Integer>'
+      'java.util.ArrayList<java.lang.Integer>' is reachable as a supertype of type 'class org.cobogw.gwt.user.client.rpc.AsyncCallbackCollection'
+      'org.cobogw.gwt.user.client.rpc.AsyncCallbackCollection' is reachable as a subtype of type 'interface java.util.List<java.lang.Integer>'
       'java.util.List<java.lang.Integer>' is reachable from field 'list' of type 'org.drools.guvnor.client.security.Capabilities'
       'org.drools.guvnor.client.security.Capabilities' is reachable as a subtype of type 'class org.drools.guvnor.client.security.Capabilities'
       Started from 'org.drools.guvnor.client.security.Capabilities'

Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/WebDAVImplTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/WebDAVImplTest.java	2009-08-25 10:12:16 UTC (rev 29044)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/WebDAVImplTest.java	2009-08-25 12:22:28 UTC (rev 29045)
@@ -2,12 +2,15 @@
 
 import java.io.File;
 import java.io.InputStream;
+import java.security.Principal;
 import java.util.Date;
 import java.util.Iterator;
 
 import junit.framework.Assert;
 import junit.framework.TestCase;
 
+import net.sf.webdav.ITransaction;
+
 import org.apache.commons.io.IOUtils;
 import org.drools.guvnor.server.util.TestEnvironmentSessionHelper;
 import org.drools.repository.AssetItem;
@@ -16,509 +19,635 @@
 
 public class WebDAVImplTest extends TestCase {
 
-	public void testPath() {
-		WebDAVImpl imp = new WebDAVImpl(new File(""));
-		String[] path = imp.getPath("http://goober/whee/webdav/packages/packagename/resource.drl");
-		assertEquals("packages", path[0]);
-		assertEquals("packagename", path[1]);
-		assertEquals("resource.drl", path[2]);
+    public void testPath() {
+        WebDAVImpl imp = new WebDAVImpl( new File( "" ) );
+        String[] path = imp.getPath( "http://goober/whee/webdav/packages/packagename/resource.drl" );
+        assertEquals( "packages",
+                      path[0] );
+        assertEquals( "packagename",
+                      path[1] );
+        assertEquals( "resource.drl",
+                      path[2] );
 
-		path = imp.getPath("foo/webdav");
-		assertEquals(0, path.length);
+        path = imp.getPath( "foo/webdav" );
+        assertEquals( 0,
+                      path.length );
 
-		path = imp.getPath("/");
-		assertEquals(0, path.length);
+        path = imp.getPath( "/" );
+        assertEquals( 0,
+                      path.length );
 
-		path = imp.getPath("/packages/packagename/resource.drl");
-		assertEquals("packages", path[0]);
-		assertEquals("packagename", path[1]);
-		assertEquals("resource.drl", path[2]);
+        path = imp.getPath( "/packages/packagename/resource.drl" );
+        assertEquals( "packages",
+                      path[0] );
+        assertEquals( "packagename",
+                      path[1] );
+        assertEquals( "resource.drl",
+                      path[2] );
 
+    }
 
+    public void testBadCopy() throws Exception {
+        //OSX does stupid shit when copying in the same directory
+        //for instance, it creates the copy as foobar.x copy - totally hosing
+        //the file extension.
+        WebDAVImpl imp = new WebDAVImpl( new File( "" ) );
+        try {
+            imp.objectExists( "/foo/webdav/packages/foobar/Something.drl copy 42" );
+            fail( "should not be allowed" );
+        } catch ( IllegalArgumentException e ) {
+            assertNotNull( e.getMessage() );
+        }
 
-	}
+    }
 
-	public void testBadCopy() throws Exception {
-		//OSX does stupid shit when copying in the same directory
-		//for instance, it creates the copy as foobar.x copy - totally hosing
-		//the file extension.
-		WebDAVImpl imp = new WebDAVImpl(new File(""));
-		try {
-			imp.objectExists("/foo/webdav/packages/foobar/Something.drl copy 42");
-			fail("should not be allowed");
-		} catch (IllegalArgumentException e) {
-			assertNotNull(e.getMessage());
-		}
+    public void testListRoot() throws Exception {
+        WebDAVImpl imp = new WebDAVImpl( new File( "" ) );
+        String[] children = imp.getChildrenNames( new TransactionMock(),
+                                                  "foobar/webdav" );
+        assertEquals( 2,
+                      children.length );
+        assertEquals( "packages",
+                      children[0] );
+        assertEquals( "snapshots",
+                      children[1] );
+    }
 
-	}
+    public void testChildrenNames() throws Exception {
+        WebDAVImpl imp = getImpl();
+        RulesRepository repo = imp.getRepo();
+        String[] children = imp.getChildrenNames( new TransactionMock(),
+                                                  "http://goo/webdav/packages" );
+        assertTrue( children.length > 0 );
+        int packageCount = children.length;
 
-	public void testListRoot() throws Exception {
-		WebDAVImpl imp = new WebDAVImpl(new File(""));
-		String[] children = imp.getChildrenNames("foobar/webdav");
-		assertEquals(2, children.length);
-		assertEquals("packages", children[0]);
-		assertEquals("snapshots", children[1]);
-	}
+        PackageItem pkg = repo.createPackage( "testWebDavChildNames1",
+                                              "" );
+        repo.createPackage( "testWebDavChildNames2",
+                            "" );
+        repo.save();
+        children = imp.getChildrenNames( new TransactionMock(),
+                                         "http://goo/webdav/packages" );
+        assertEquals( packageCount + 2,
+                      children.length );
+        assertContains( "testWebDavChildNames1",
+                        children );
+        assertContains( "testWebDavChildNames2",
+                        children );
 
-	public void testChildrenNames() throws Exception {
-		WebDAVImpl imp = getImpl();
-		RulesRepository repo = imp.getRepo();
-		String[] children = imp.getChildrenNames("http://goo/webdav/packages");
-		assertTrue(children.length > 0);
-		int packageCount = children.length;
+        AssetItem asset = pkg.addAsset( "asset1",
+                                        "something" );
+        asset.updateFormat( "drl" );
+        asset.checkin( "" );
+        asset = pkg.addAsset( "asset2",
+                              "something" );
+        asset.updateFormat( "dsl" );
+        asset.checkin( "" );
 
-		PackageItem pkg = repo.createPackage("testWebDavChildNames1", "");
-		repo.createPackage("testWebDavChildNames2", "");
-		repo.save();
-		children = imp.getChildrenNames("http://goo/webdav/packages");
-		assertEquals(packageCount + 2, children.length);
-		assertContains("testWebDavChildNames1", children);
-		assertContains("testWebDavChildNames2", children);
+        children = imp.getChildrenNames( new TransactionMock(),
+                                         "foo/webdav/packages/testWebDavChildNames1" );
+        assertEquals( 2,
+                      children.length );
+        assertEquals( "asset1.drl",
+                      children[0] );
+        assertEquals( "asset2.dsl",
+                      children[1] );
 
-		AssetItem asset = pkg.addAsset("asset1", "something");
-		asset.updateFormat("drl");
-		asset.checkin("");
-		asset = pkg.addAsset("asset2", "something");
-		asset.updateFormat("dsl");
-		asset.checkin("");
+        children = imp.getChildrenNames( new TransactionMock(),
+                                         "foo/webdav/packages/testWebDavChildNames1/asset1.drl" );
+        assertNull( children );
 
-		children = imp.getChildrenNames("foo/webdav/packages/testWebDavChildNames1");
-		assertEquals(2, children.length);
-		assertEquals("asset1.drl", children[0]);
-		assertEquals("asset2.dsl", children[1]);
+    }
 
-		children = imp.getChildrenNames("foo/webdav/packages/testWebDavChildNames1/asset1.drl");
-		assertNull(children);
+    private WebDAVImpl getImpl() throws Exception {
+        return new WebDAVImpl( new RulesRepository( TestEnvironmentSessionHelper.getSession( true ) ) );
+    }
 
+    public void testCreateFolder() throws Exception {
+        WebDAVImpl imp = getImpl();
+        RulesRepository repo = imp.getRepo();
+        String[] children = imp.getChildrenNames( new TransactionMock(),
+                                                  "http://goo/webdav/packages" );
+        int packageCount = children.length;
 
-	}
+        imp.createFolder( new TransactionMock(),
+                          "foo/bar/webdav/packages/testCreateWebDavFolder" );
+        children = imp.getChildrenNames( new TransactionMock(),
+                                         "http://goo/webdav/packages" );
 
-	private WebDAVImpl getImpl() throws Exception {
-		return new WebDAVImpl(new RulesRepository(TestEnvironmentSessionHelper.getSession(true)));
-	}
+        assertEquals( packageCount + 1,
+                      children.length );
+        assertContains( "testCreateWebDavFolder",
+                        children );
 
-	public void testCreateFolder() throws Exception {
-		WebDAVImpl imp = getImpl();
-		RulesRepository repo = imp.getRepo();
-		String[] children = imp.getChildrenNames("http://goo/webdav/packages");
-		int packageCount = children.length;
+        PackageItem pkg = repo.loadPackage( "testCreateWebDavFolder" );
+        assertNotNull( pkg );
 
-		imp.createFolder("foo/bar/webdav/packages/testCreateWebDavFolder");
-		children = imp.getChildrenNames("http://goo/webdav/packages");
+        pkg.addAsset( "someAsset",
+                      "" );
 
-		assertEquals(packageCount+1, children.length);
-		assertContains("testCreateWebDavFolder", children);
+        try {
+            imp.createFolder( new TransactionMock(),
+                              "foo/bar/webdav/somethingElse" );
+            fail( "this should not work !" );
+        } catch ( UnsupportedOperationException e ) {
+            assertNotNull( e.getMessage() );
+        }
 
-		PackageItem pkg = repo.loadPackage("testCreateWebDavFolder");
-		assertNotNull(pkg);
+    }
 
-		pkg.addAsset("someAsset", "");
+    public void testDates() throws Exception {
+        String uri = "/foo/webdav";
+        WebDAVImpl imp = getImpl();
+        assertNotNull( imp.getCreationDate( uri ) );
+        assertNotNull( imp.getLastModified( uri ) );
 
+        uri = "/foo/webdav/packages";
+        assertNotNull( imp.getCreationDate( uri ) );
+        assertNotNull( imp.getLastModified( uri ) );
 
-		try {
-			imp.createFolder("foo/bar/webdav/somethingElse");
-			fail("this should not work !");
-		} catch (UnsupportedOperationException e) {
-			assertNotNull(e.getMessage());
-		}
+    }
 
-	}
+    public void testCreateResourceAndCreatedDate() throws Exception {
+        WebDAVImpl imp = getImpl();
+        RulesRepository repo = imp.getRepo();
+        imp.createFolder( new TransactionMock(),
+                          "foo/bar/webdav/packages/testCreateResourceDAVFolder" );
 
-	public void testDates() throws Exception {
-		String uri = "/foo/webdav";
-		WebDAVImpl imp = getImpl();
-		assertNotNull(imp.getCreationDate(uri));
-		assertNotNull(imp.getLastModified(uri));
+        Thread.sleep( 100 );
 
-		uri = "/foo/webdav/packages";
-		assertNotNull(imp.getCreationDate(uri));
-		assertNotNull(imp.getLastModified(uri));
+        imp.createResource( new TransactionMock(),
+                            "fpp/bar/webdav/packages/testCreateResourceDAVFolder/asset.drl" );
 
-	}
+        String[] resources = imp.getChildrenNames( new TransactionMock(),
+                                                   "foo/bar/webdav/packages/testCreateResourceDAVFolder" );
+        assertEquals( 1,
+                      resources.length );
+        assertEquals( "asset.drl",
+                      resources[0] );
 
-	public void testCreateResourceAndCreatedDate() throws Exception {
-		WebDAVImpl imp = getImpl();
-		RulesRepository repo = imp.getRepo();
-		imp.createFolder("foo/bar/webdav/packages/testCreateResourceDAVFolder");
+        //should be ignored
+        imp.createResource( new TransactionMock(),
+                            "fpp/bar/webdav/packages/testCreateResourceDAVFolder/._asset.drl" );
+        imp.createResource( new TransactionMock(),
+                            "fpp/bar/webdav/packages/.DS_Store" );
 
-		Thread.sleep(100);
+        PackageItem pkg = repo.loadPackage( "testCreateResourceDAVFolder" );
+        assertFalse( pkg.containsAsset( "._asset" ) );
+        assertTrue( pkg.containsAsset( "asset" ) );
 
-		imp.createResource("fpp/bar/webdav/packages/testCreateResourceDAVFolder/asset.drl");
+        Iterator<AssetItem> it = pkg.getAssets();
+        AssetItem ass = it.next();
+        assertEquals( "asset",
+                      ass.getName() );
+        assertEquals( "drl",
+                      ass.getFormat() );
 
-		String[] resources = imp.getChildrenNames("foo/bar/webdav/packages/testCreateResourceDAVFolder");
-		assertEquals(1, resources.length);
-		assertEquals("asset.drl", resources[0]);
+        Date create = imp.getCreationDate( "foo/bar/webdav/packages/testCreateResourceDAVFolder" );
+        assertNotNull( create );
+        assertTrue( create.after( new Date( "10-Jul-1974" ) ) );
 
-		//should be ignored
-		imp.createResource("fpp/bar/webdav/packages/testCreateResourceDAVFolder/._asset.drl");
-		imp.createResource("fpp/bar/webdav/packages/.DS_Store");
+        Date assetCreate = imp.getCreationDate( "fpp/bar/webdav/packages/testCreateResourceDAVFolder/asset.drl" );
+        assertTrue( assetCreate.after( create ) );
 
+        Date lm = imp.getLastModified( "foo/bar/webdav/packages/testCreateResourceDAVFolder" );
+        assertNotNull( lm );
+        assertTrue( lm.after( new Date( "10-Jul-1974" ) ) );
 
-		PackageItem pkg = repo.loadPackage("testCreateResourceDAVFolder");
-		assertFalse(pkg.containsAsset("._asset"));
-		assertTrue(pkg.containsAsset("asset"));
+        Date alm = imp.getLastModified( "fpp/bar/webdav/packages/testCreateResourceDAVFolder/asset.drl" );
+        assertTrue( alm.after( lm ) );
 
-		Iterator<AssetItem> it = pkg.getAssets();
-		AssetItem ass = it.next();
-		assertEquals("asset", ass.getName());
-		assertEquals("drl", ass.getFormat());
+        try {
+            imp.createResource( new TransactionMock(),
+                                "boo/bar/webdav/hummer.drl" );
+            fail( "Shouldn't be able to do this" );
+        } catch ( UnsupportedOperationException e ) {
+            assertNotNull( e.getMessage() );
+        }
 
+    }
 
-		Date create = imp.getCreationDate("foo/bar/webdav/packages/testCreateResourceDAVFolder");
-		assertNotNull(create);
-		assertTrue(create.after(new Date("10-Jul-1974")));
+    public void testResourceContent() throws Exception {
+        WebDAVImpl imp = getImpl();
+        RulesRepository repo = imp.getRepo();
+        PackageItem pkg = repo.createPackage( "testWebDAVContent",
+                                              "" );
 
-		Date assetCreate = imp.getCreationDate("fpp/bar/webdav/packages/testCreateResourceDAVFolder/asset.drl");
-		assertTrue(assetCreate.after(create));
+        AssetItem asset = pkg.addAsset( "asset",
+                                        "something" );
+        asset.updateFormat( "drl" );
+        asset.updateContent( "Some content" );
+        asset.checkin( "" );
+        InputStream data = imp.getResourceContent( new TransactionMock(),
+                                                   "foo/webdav/packages/testWebDAVContent/asset.drl" );
+        assertEquals( "Some content",
+                      IOUtils.toString( data ) );
 
+        asset = pkg.addAsset( "asset2",
+                              "something" );
+        asset.updateFormat( "xls" );
+        asset.updateBinaryContentAttachment( IOUtils.toInputStream( "This is binary" ) );
+        asset.checkin( "" );
 
-		Date lm = imp.getLastModified("foo/bar/webdav/packages/testCreateResourceDAVFolder");
-		assertNotNull(lm);
-		assertTrue(lm.after(new Date("10-Jul-1974")));
+        data = imp.getResourceContent( new TransactionMock(),
+                                       "foo/webdav/packages/testWebDAVContent/asset2.xls" );
+        assertEquals( "This is binary",
+                      IOUtils.toString( data ) );
 
-		Date alm = imp.getLastModified("fpp/bar/webdav/packages/testCreateResourceDAVFolder/asset.drl");
-		assertTrue(alm.after(lm));
+        AssetItem asset_ = pkg.addAsset( "somethingelse",
+                                         "" );
+        asset_.updateFormat( "drl" );
+        asset_.checkin( "" );
 
+        data = imp.getResourceContent( new TransactionMock(),
+                                       "foo/webdav/packages/testWebDAVContent/somethingelse.drl" );
+        assertEquals( "",
+                      IOUtils.toString( data ) );
 
-		try {
-			imp.createResource("boo/bar/webdav/hummer.drl");
-			fail("Shouldn't be able to do this");
-		} catch (UnsupportedOperationException e) {
-			assertNotNull(e.getMessage());
-		}
+    }
 
+    public void testIsFolder() throws Exception {
+        WebDAVImpl imp = getImpl();
+        assertTrue( imp.isFolder( "/com/foo/webdav" ) );
+        assertTrue( imp.isFolder( "/com/foo/webdav/" ) );
+        assertTrue( imp.isFolder( "/com/foo/webdav/packages" ) );
+        assertTrue( imp.isFolder( "/com/foo/webdav/packages/" ) );
+        assertFalse( imp.isFolder( "/com/foo/webdav/packages/somePackage" ) );
 
+        imp.createFolder( new TransactionMock(),
+                          "/com/foo/webdav/packages/testDAVIsFolder" );
+        assertTrue( imp.isFolder( "/com/foo/webdav/packages/testDAVIsFolder" ) );
+        assertFalse( imp.isFolder( "/com/foo/webdav/packages/somePackage/SomeFile.drl" ) );
+    }
 
-	}
+    public void testIsResource() throws Exception {
+        WebDAVImpl imp = getImpl();
+        assertFalse( imp.isResource( "/com/foo/webdav/packages" ) );
+        assertFalse( imp.isResource( "/com/foo/webdav/packages/somePackage" ) );
+        assertFalse( imp.isResource( "/com/foo/webdav/packages/somePackage/SomeFile.drl" ) );
 
-	public void testResourceContent() throws Exception {
-		WebDAVImpl imp = getImpl();
-		RulesRepository repo = imp.getRepo();
-		PackageItem pkg = repo.createPackage("testWebDAVContent", "");
+        imp.createFolder( new TransactionMock(),
+                          "/com/foo/webdav/packages/testDAVIsResource" );
+        imp.createResource( new TransactionMock(),
+                            "/com/foo/webdav/packages/testDAVIsResource/SomeFile.drl" );
 
-		AssetItem asset = pkg.addAsset("asset", "something");
-		asset.updateFormat("drl");
-		asset.updateContent("Some content");
-		asset.checkin("");
-		InputStream data = imp.getResourceContent("foo/webdav/packages/testWebDAVContent/asset.drl");
-		assertEquals("Some content", IOUtils.toString(data));
+        assertTrue( imp.isResource( "/com/foo/webdav/packages/testDAVIsResource/SomeFile.drl" ) );
 
-		asset = pkg.addAsset("asset2", "something");
-		asset.updateFormat("xls");
-		asset.updateBinaryContentAttachment(IOUtils.toInputStream("This is binary"));
-		asset.checkin("");
+    }
 
-		data = imp.getResourceContent("foo/webdav/packages/testWebDAVContent/asset2.xls");
-		assertEquals("This is binary", IOUtils.toString(data));
+    public void testResourceLength() throws Exception {
+        WebDAVImpl imp = getImpl();
+        assertEquals( 0,
+                      imp.getResourceLength( new TransactionMock(),
+                                             "foo/bar/webdav/packages" ) );
+        imp.createFolder( new TransactionMock(),
+                          "/foo/webdav/packages/testResourceLengthDAV" );
+        imp.createResource( new TransactionMock(),
+                            "/foo/webdav/packages/testResourceLengthDAV/testResourceLength" );
+        assertEquals( 0,
+                      imp.getResourceLength( new TransactionMock(),
+                                             "/foo/webdav/packages/testResourceLengthDAV/testResourceLength" ) );
+        imp.setResourceContent( new TransactionMock(),
+                                "/foo/webdav/packages/testResourceLengthDAV/testResourceLength",
+                                IOUtils.toInputStream( "some input" ),
+                                null,
+                                null );
+        assertEquals( "some input".getBytes().length,
+                      imp.getResourceLength( new TransactionMock(),
+                                             "/foo/webdav/packages/testResourceLengthDAV/testResourceLength" ) );
 
+    }
 
-		AssetItem asset_ = pkg.addAsset("somethingelse", "");
-		asset_.updateFormat("drl");
-		asset_.checkin("");
+    public void testObjectExists() throws Exception {
+        WebDAVImpl imp = getImpl();
+        assertFalse( imp.objectExists( "foo/webdav/bar" ) );
+        assertTrue( imp.objectExists( "foo/webdav" ) );
+        assertTrue( imp.objectExists( "foo/webdav/packages" ) );
 
-		data = imp.getResourceContent("foo/webdav/packages/testWebDAVContent/somethingelse.drl");
-		assertEquals("", IOUtils.toString(data));
+        imp.createFolder( new TransactionMock(),
+                          "foo/webdav/packages/testDavObjectExists" );
+        assertTrue( imp.objectExists( "foo/webdav/packages/testDavObjectExists" ) );
+        assertFalse( imp.objectExists( "foo/webdav/packages/testDavObjectExistsXXXX" ) );
+        assertFalse( imp.objectExists( "foo/webdav/packages/testDavObjectExists/foobar.drl" ) );
+        assertFalse( imp.objectExists( "foo/webdav/packages/testDavObjectExistsXXXX/foobar.drl" ) );
+    }
 
+    public void testRemoveObject() throws Exception {
+        WebDAVImpl imp = getImpl();
+        assertFalse( imp.objectExists( "foo/webdav/packages/testDavRemoveObjectFolder" ) );
+        imp.createFolder( new TransactionMock(),
+                          "foo/webdav/packages/testDavRemoveObjectFolder" );
+        assertTrue( imp.objectExists( "foo/webdav/packages/testDavRemoveObjectFolder" ) );
+        imp.removeObject( new TransactionMock(),
+                          "foo/webdav/packages/testDavRemoveObjectFolder" );
+        assertFalse( imp.objectExists( "foo/webdav/packages/testDavRemoveObjectFolder" ) );
 
+        imp.createFolder( new TransactionMock(),
+                          "foo/webdav/packages/testDavRemoveObjectAsset" );
+        imp.createResource( new TransactionMock(),
+                            "foo/webdav/packages/testDavRemoveObjectAsset/asset.drl" );
 
+        AssetItem as = imp.getRepo().loadPackage( "testDavRemoveObjectAsset" ).loadAsset( "asset" );
+        long origVer = as.getVersionNumber();
 
+        assertTrue( imp.objectExists( "foo/webdav/packages/testDavRemoveObjectAsset/asset.drl" ) );
+        imp.removeObject( new TransactionMock(),
+                          "foo/webdav/packages/testDavRemoveObjectAsset/asset.drl" );
+        assertFalse( imp.objectExists( "foo/webdav/packages/testDavRemoveObjectAsset/asset.drl" ) );
+        assertTrue( imp.objectExists( "foo/webdav/packages/testDavRemoveObjectAsset" ) );
 
-	}
+        imp.createResource( new TransactionMock(),
+                            "foo/webdav/packages/testDavRemoveObjectAsset/asset.drl" );
+        assertTrue( imp.objectExists( "foo/webdav/packages/testDavRemoveObjectAsset/asset.drl" ) );
 
-	public void testIsFolder() throws Exception {
-		WebDAVImpl imp = getImpl();
-		assertTrue(imp.isFolder("/com/foo/webdav"));
-		assertTrue(imp.isFolder("/com/foo/webdav/"));
-		assertTrue(imp.isFolder("/com/foo/webdav/packages"));
-		assertTrue(imp.isFolder("/com/foo/webdav/packages/"));
-		assertFalse(imp.isFolder("/com/foo/webdav/packages/somePackage"));
+        as = imp.getRepo().loadPackage( "testDavRemoveObjectAsset" ).loadAsset( "asset" );
+        assertTrue( as.getVersionNumber() > origVer );
+        imp.createFolder( new TransactionMock(),
+                          "foo/webdav/packages/testDavRemoveObjectFolder" );
+        assertTrue( imp.objectExists( "foo/webdav/packages/testDavRemoveObjectFolder" ) );
 
-		imp.createFolder("/com/foo/webdav/packages/testDAVIsFolder");
-		assertTrue(imp.isFolder("/com/foo/webdav/packages/testDAVIsFolder"));
-		assertFalse(imp.isFolder("/com/foo/webdav/packages/somePackage/SomeFile.drl"));
-	}
+    }
 
-	public void testIsResource() throws Exception {
-		WebDAVImpl imp = getImpl();
-		assertFalse(imp.isResource("/com/foo/webdav/packages"));
-		assertFalse(imp.isResource("/com/foo/webdav/packages/somePackage"));
-		assertFalse(imp.isResource("/com/foo/webdav/packages/somePackage/SomeFile.drl"));
+    public void testSetContent() throws Exception {
+        WebDAVImpl imp = getImpl();
+        imp.createFolder( new TransactionMock(),
+                          "/foo/webdav/packages/testSetDavContent" );
+        imp.commit( new TransactionMock() );
+        imp = getImpl();
+        imp.createResource( new TransactionMock(),
+                            "/foo/webdav/packages/testSetDavContent/Something.drl" );
+        imp.commit( new TransactionMock() );
+        imp = getImpl();
+        imp.setResourceContent( new TransactionMock(),
+                                "/foo/webdav/packages/testSetDavContent/Something.drl",
+                                IOUtils.toInputStream( "some input" ),
+                                null,
+                                null );
+        imp.commit( new TransactionMock() );
+        imp = getImpl();
+        imp.getResourceContent( new TransactionMock(),
+                                "/foo/webdav/packages/testSetDavContent/Something.drl" );
+        imp.commit( new TransactionMock() );
+        imp = getImpl();
 
-		imp.createFolder("/com/foo/webdav/packages/testDAVIsResource");
-		imp.createResource("/com/foo/webdav/packages/testDAVIsResource/SomeFile.drl");
+        AssetItem as = imp.getRepo().loadPackage( "testSetDavContent" ).loadAsset( "Something" );
+        assertTrue( as.isBinary() );
 
-		assertTrue(imp.isResource("/com/foo/webdav/packages/testDAVIsResource/SomeFile.drl"));
+        String result = IOUtils.toString( imp.getResourceContent( new TransactionMock(),
+                                                                  "/foo/webdav/packages/testSetDavContent/Something.drl" ) );
+        assertEquals( "some input",
+                      result );
 
-	}
+        PackageItem pkg = imp.getRepo().loadPackage( "testSetDavContent" );
+        AssetItem asset = pkg.loadAsset( "Something" );
+        assertEquals( "drl",
+                      asset.getFormat() );
+        assertEquals( "some input",
+                      asset.getContent() );
+        assertEquals( "some input",
+                      IOUtils.toString( asset.getBinaryContentAttachment() ) );
 
-	public void testResourceLength() throws Exception {
-		WebDAVImpl imp = getImpl();
-		assertEquals(0, imp.getResourceLength("foo/bar/webdav/packages"));
-		imp.createFolder("/foo/webdav/packages/testResourceLengthDAV");
-		imp.createResource("/foo/webdav/packages/testResourceLengthDAV/testResourceLength");
-		assertEquals(0, imp.getResourceLength("/foo/webdav/packages/testResourceLengthDAV/testResourceLength"));
-		imp.setResourceContent("/foo/webdav/packages/testResourceLengthDAV/testResourceLength", IOUtils.toInputStream("some input"), null, null);
-		assertEquals("some input".getBytes().length, imp.getResourceLength("/foo/webdav/packages/testResourceLengthDAV/testResourceLength"));
+        imp.setResourceContent( new TransactionMock(),
+                                "/foo/webdav/packages/testSetDavContent/Something.drl",
+                                IOUtils.toInputStream( "some more input" ),
+                                null,
+                                null );
+        result = IOUtils.toString( imp.getResourceContent( new TransactionMock(),
+                                                           "/foo/webdav/packages/testSetDavContent/Something.drl" ) );
+        assertEquals( "some more input",
+                      result );
 
-	}
+    }
 
+    public void testNewAsset() throws Exception {
+        //simulating a full lifecycle of a new asset from webdav
+        WebDAVImpl imp = getImpl();
+        imp.createFolder( new TransactionMock(),
+                          "/foo/webdav/packages/testDavNewAsset" );
+        imp.commit( new TransactionMock() );
+        imp = getImpl();
 
-	public void testObjectExists() throws Exception {
-		WebDAVImpl imp = getImpl();
-		assertFalse(imp.objectExists("foo/webdav/bar"));
-		assertTrue(imp.objectExists("foo/webdav"));
-		assertTrue(imp.objectExists("foo/webdav/packages"));
+        assertFalse( imp.objectExists( "/foo/webdav/packages/testDavNewAsset/Blah.drl" ) );
+        imp.commit( new TransactionMock() );
+        imp = getImpl();
+        imp.isFolder( "/packages/testDavNewAsset" );
+        imp.isFolder( "/foo/webdav/packages/testDavNewAsset/Blah.drl" );
+        assertFalse( imp.objectExists( "/foo/webdav/packages/testDavNewAsset/Blah.drl" ) );
+        imp.createResource( new TransactionMock(),
+                            "/foo/webdav/packages/testDavNewAsset/Blah.drl" );
+        imp.setResourceContent( new TransactionMock(),
+                                "/foo/webdav/packages/testDavNewAsset/Blah.drl",
+                                IOUtils.toInputStream( "blah blah" ),
+                                null,
+                                null );
+        imp.getResourceLength( new TransactionMock(),
+                               "/foo/webdav/packages/testDavNewAsset/Blah.drl" );
+        imp.commit( new TransactionMock() );
+        imp = getImpl();
 
-		imp.createFolder("foo/webdav/packages/testDavObjectExists");
-		assertTrue(imp.objectExists("foo/webdav/packages/testDavObjectExists"));
-		assertFalse(imp.objectExists("foo/webdav/packages/testDavObjectExistsXXXX"));
-		assertFalse(imp.objectExists("foo/webdav/packages/testDavObjectExists/foobar.drl"));
-		assertFalse(imp.objectExists("foo/webdav/packages/testDavObjectExistsXXXX/foobar.drl"));
-	}
+        assertTrue( imp.objectExists( "/foo/webdav/packages/testDavNewAsset/Blah.drl" ) );
 
+    }
 
-	public void testRemoveObject() throws Exception {
-		WebDAVImpl imp = getImpl();
-		assertFalse(imp.objectExists("foo/webdav/packages/testDavRemoveObjectFolder"));
-		imp.createFolder("foo/webdav/packages/testDavRemoveObjectFolder");
-		assertTrue(imp.objectExists("foo/webdav/packages/testDavRemoveObjectFolder"));
-		imp.removeObject("foo/webdav/packages/testDavRemoveObjectFolder");
-		assertFalse(imp.objectExists("foo/webdav/packages/testDavRemoveObjectFolder"));
+    public void testSnapshot() throws Exception {
+        WebDAVImpl imp = getImpl();
+        imp.createFolder( new TransactionMock(),
+                          "/foo/webdav/packages/testDavSnapshot" );
+        imp.createResource( new TransactionMock(),
+                            "/foo/webdav/packages/testDavSnapshot/Something.drl" );
+        imp.setResourceContent( new TransactionMock(),
+                                "/foo/webdav/packages/testDavSnapshot/Something.drl",
+                                IOUtils.toInputStream( "some input" ),
+                                null,
+                                null );
 
+        RulesRepository repo = imp.getRepo();
 
-		imp.createFolder("foo/webdav/packages/testDavRemoveObjectAsset");
-		imp.createResource("foo/webdav/packages/testDavRemoveObjectAsset/asset.drl");
+        repo.createPackageSnapshot( "testDavSnapshot",
+                                    "SNAP1" );
+        repo.createPackageSnapshot( "testDavSnapshot",
+                                    "SNAP2" );
 
-		AssetItem as = imp.getRepo().loadPackage("testDavRemoveObjectAsset").loadAsset("asset");
-		long origVer = as.getVersionNumber();
+        String[] packages = imp.getChildrenNames( new TransactionMock(),
+                                                  "/foo/webdav/snapshots" );
+        assertTrue( packages.length > 0 );
+        assertContains( "testDavSnapshot",
+                        packages );
 
-		assertTrue(imp.objectExists("foo/webdav/packages/testDavRemoveObjectAsset/asset.drl"));
-		imp.removeObject("foo/webdav/packages/testDavRemoveObjectAsset/asset.drl");
-		assertFalse(imp.objectExists("foo/webdav/packages/testDavRemoveObjectAsset/asset.drl"));
-		assertTrue(imp.objectExists("foo/webdav/packages/testDavRemoveObjectAsset"));
+        String[] snaps = imp.getChildrenNames( new TransactionMock(),
+                                               "/foo/webdav/snapshots/testDavSnapshot" );
+        assertEquals( 2,
+                      snaps.length );
 
-		imp.createResource("foo/webdav/packages/testDavRemoveObjectAsset/asset.drl");
-		assertTrue(imp.objectExists("foo/webdav/packages/testDavRemoveObjectAsset/asset.drl"));
+        assertEquals( "SNAP1",
+                      snaps[0] );
+        assertEquals( "SNAP2",
+                      snaps[1] );
 
-		as = imp.getRepo().loadPackage("testDavRemoveObjectAsset").loadAsset("asset");
-		assertTrue(as.getVersionNumber() > origVer);
-		imp.createFolder("foo/webdav/packages/testDavRemoveObjectFolder");
-		assertTrue(imp.objectExists("foo/webdav/packages/testDavRemoveObjectFolder"));
+        String[] list = imp.getChildrenNames( new TransactionMock(),
+                                              "/foo/webdav/snapshots/testDavSnapshot/SNAP1" );
+        assertEquals( 1,
+                      list.length );
+        assertEquals( "Something.drl",
+                      list[0] );
 
+        list = imp.getChildrenNames( new TransactionMock(),
+                                     "/foo/webdav/snapshots/testDavSnapshot/SNAP2" );
+        assertEquals( 1,
+                      list.length );
+        assertEquals( "Something.drl",
+                      list[0] );
 
-	}
+        assertNotNull( imp.getCreationDate( "/foo/webdav/snapshots" ) );
+        assertNotNull( imp.getCreationDate( "/foo/webdav/snapshots/testDavSnapshot" ) );
+        assertNotNull( imp.getCreationDate( "/foo/webdav/snapshots/testDavSnapshot/SNAP1" ) );
+        assertNotNull( imp.getCreationDate( "/foo/webdav/snapshots/testDavSnapshot/SNAP1/Something.drl" ) );
 
+        assertNotNull( imp.getLastModified( "/foo/webdav/snapshots" ) );
+        assertNotNull( imp.getLastModified( "/foo/webdav/snapshots/testDavSnapshot" ) );
+        assertNotNull( imp.getLastModified( "/foo/webdav/snapshots/testDavSnapshot/SNAP1" ) );
+        assertNotNull( imp.getLastModified( "/foo/webdav/snapshots/testDavSnapshot/SNAP1/Something.drl" ) );
 
+        createFolderTry( imp,
+                         "/foo/webdav/snapshots/randomAss" );
+        createFolderTry( imp,
+                         "/foo/webdav/snapshots/testDavSnapshot/SNAPX" );
+        createFolderTry( imp,
+                         "/foo/webdav/snapshots/testDavSnapshot/SNAP1/Something.drl" );
+        createFolderTry( imp,
+                         "/foo/webdav/snapshots/testDavSnapshot/SNAP1/Another.drl" );
 
-	public void testSetContent() throws Exception {
-		WebDAVImpl imp  = getImpl();
-		imp.createFolder("/foo/webdav/packages/testSetDavContent");
-		imp.commit();
-		imp  = getImpl();
-		imp.createResource("/foo/webdav/packages/testSetDavContent/Something.drl");
-		imp.commit();
-		imp  = getImpl();
-		imp.setResourceContent("/foo/webdav/packages/testSetDavContent/Something.drl", IOUtils.toInputStream("some input"), null, null);
-		imp.commit();
-		imp  = getImpl();
-		imp.getResourceContent("/foo/webdav/packages/testSetDavContent/Something.drl");
-		imp.commit();
-		imp  = getImpl();
+        createResourceTry( imp,
+                           "/foo/webdav/snapshots/randomAss" );
+        createResourceTry( imp,
+                           "/foo/webdav/snapshots/testDavSnapshot/SNAPX" );
+        createResourceTry( imp,
+                           "/foo/webdav/snapshots/testDavSnapshot/SNAP1/Something.drl" );
+        createResourceTry( imp,
+                           "/foo/webdav/snapshots/testDavSnapshot/SNAP1/Another.drl" );
 
-		AssetItem as = imp.getRepo().loadPackage("testSetDavContent").loadAsset("Something");
-		assertTrue(as.isBinary());
+        InputStream in = imp.getResourceContent( new TransactionMock(),
+                                                 "/foo/webdav/snapshots/testDavSnapshot/SNAP1/Something.drl" );
+        assertEquals( "some input",
+                      IOUtils.toString( in ) );
 
+        assertEquals( 0,
+                      imp.getResourceLength( new TransactionMock(),
+                                             "/foo/webdav/snapshots/testDavSnapshot/SNAP1" ) );
+        assertEquals( "some input".getBytes().length,
+                      imp.getResourceLength( new TransactionMock(),
+                                             "/foo/webdav/snapshots/testDavSnapshot/SNAP1/Something.drl" ) );
 
-		String result = IOUtils.toString(imp.getResourceContent("/foo/webdav/packages/testSetDavContent/Something.drl"));
-		assertEquals("some input", result);
+        assertTrue( imp.isFolder( "/foo/webdav/snapshots" ) );
+        assertTrue( imp.isFolder( "/foo/webdav/snapshots/testDavSnapshot" ) );
+        assertTrue( imp.isFolder( "/foo/webdav/snapshots/testDavSnapshot/SNAP2" ) );
+        assertFalse( imp.isFolder( "/foo/webdav/snapshots/testDavSnapshot/SNAP2/Something.drl" ) );
 
-		PackageItem pkg = imp.getRepo().loadPackage("testSetDavContent");
-		AssetItem asset = pkg.loadAsset("Something");
-		assertEquals("drl", asset.getFormat());
-		assertEquals("some input", asset.getContent());
-		assertEquals("some input", IOUtils.toString(asset.getBinaryContentAttachment()));
+        assertFalse( imp.isResource( "/foo/webdav/snapshots" ) );
+        assertFalse( imp.isResource( "/foo/webdav/snapshots/testDavSnapshot" ) );
+        assertFalse( imp.isResource( "/foo/webdav/snapshots/testDavSnapshot/SNAP2" ) );
+        assertTrue( imp.isResource( "/foo/webdav/snapshots/testDavSnapshot/SNAP2/Something.drl" ) );
 
-		imp.setResourceContent("/foo/webdav/packages/testSetDavContent/Something.drl", IOUtils.toInputStream("some more input"), null, null);
-		result = IOUtils.toString(imp.getResourceContent("/foo/webdav/packages/testSetDavContent/Something.drl"));
-		assertEquals("some more input", result);
+        assertFalse( imp.isResource( "/foo/webdav/snapshots/testDavSnapshot/SNAP2/DoesNotExist.drl" ) );
 
+        assertTrue( imp.objectExists( "/foo/webdav/snapshots" ) );
+        assertFalse( imp.objectExists( "/foo/webdav/snapshots/testDavSnapshotXX" ) );
+        assertTrue( imp.objectExists( "/foo/webdav/snapshots/testDavSnapshot" ) );
+        assertTrue( imp.objectExists( "/foo/webdav/snapshots/testDavSnapshot/SNAP1" ) );
+        assertFalse( imp.objectExists( "/foo/webdav/snapshots/testDavSnapshot/SNAPX" ) );
 
-	}
+        assertFalse( imp.objectExists( "/foo/webdav/snapshots/testDavSnapshot/SNAP1/Foo.drl" ) );
+        assertTrue( imp.objectExists( "/foo/webdav/snapshots/testDavSnapshot/SNAP1/Something.drl" ) );
 
-	public void testNewAsset() throws Exception {
-		//simulating a full lifecycle of a new asset from webdav
-		WebDAVImpl imp  = getImpl();
-		imp.createFolder("/foo/webdav/packages/testDavNewAsset");
-		imp.commit();
-		imp  = getImpl();
+        assertNull( imp.getChildrenNames( new TransactionMock(),
+                                          "/foo/webdav/snapshots/testDavSnapshot/SNAP1/Something.drl" ) );
 
-		assertFalse(imp.objectExists("/foo/webdav/packages/testDavNewAsset/Blah.drl"));
-		imp.commit();
-		imp  = getImpl();
-		imp.isFolder("/packages/testDavNewAsset");
-		imp.isFolder("/foo/webdav/packages/testDavNewAsset/Blah.drl");
-		assertFalse(imp.objectExists("/foo/webdav/packages/testDavNewAsset/Blah.drl"));
-		imp.createResource("/foo/webdav/packages/testDavNewAsset/Blah.drl");
-		imp.setResourceContent("/foo/webdav/packages/testDavNewAsset/Blah.drl", IOUtils.toInputStream("blah blah"), null, null);
-		imp.getResourceLength("/foo/webdav/packages/testDavNewAsset/Blah.drl");
-		imp.commit();
-		imp = getImpl();
+        try {
+            imp.removeObject( new TransactionMock(),
+                              "/foo/webdav/snapshots/testDavSnapshot/SNAP1/Something.drl" );
+            fail( "Should not delete files from snapshots" );
+        } catch ( Exception e ) {
+            assertNotNull( e.getMessage() );
+        }
 
-		assertTrue(imp.objectExists("/foo/webdav/packages/testDavNewAsset/Blah.drl"));
+        try {
+            imp.setResourceContent( new TransactionMock(),
+                                    "/foo/webdav/snapshots/testDavSnapshot/SNAP1/Something.drl",
+                                    null,
+                                    null,
+                                    null );
+            fail( "should not be allowed to update content in snapshots." );
+        } catch ( Exception e ) {
+            assertNotNull( e.getMessage() );
+        }
 
+        assertFalse( imp.objectExists( "/foo/webdav/snapshots/defaultPackage/new file" ) );
+        try {
+            imp.createResource( new TransactionMock(),
+                                "/foo/webdav/snapshots/defaultPackage/new file" );
+            fail( "can't touch this" );
+        } catch ( UnsupportedOperationException e ) {
+            assertNotNull( e.getMessage() );
+        }
+    }
 
-	}
+    private void createResourceTry(WebDAVImpl imp,
+                                   String path) {
+        try {
+            imp.createResource( new TransactionMock(),
+                                path );
+            fail( "Should not be allowed" );
+        } catch ( UnsupportedOperationException e ) {
+            assertNotNull( e.getMessage() );
+        }
+    }
 
+    private void createFolderTry(WebDAVImpl imp,
+                                 String path) {
+        try {
+            imp.createFolder( new TransactionMock(),
+                              path );
+            fail( "should not be allowed" );
+        } catch ( UnsupportedOperationException e ) {
+            assertNotNull( e.getMessage() );
+        }
+    }
 
-	public void testSnapshot() throws Exception {
-		WebDAVImpl imp  = getImpl();
-		imp.createFolder("/foo/webdav/packages/testDavSnapshot");
-		imp.createResource("/foo/webdav/packages/testDavSnapshot/Something.drl");
-		imp.setResourceContent("/foo/webdav/packages/testDavSnapshot/Something.drl", IOUtils.toInputStream("some input"), null, null);
+    public void testThreadLocal() throws Exception {
+        Thread t = new Thread( new Runnable() {
+            public void run() {
+                WebDAVImpl i = new WebDAVImpl();
+                assertNull( i.getRepo() );
+                try {
+                    i.begin( null );
+                } catch ( Exception e ) {
+                    fail( "should not happen" );
+                }
+                assertNotNull( i.getRepo() );
+            }
+        } );
+        t.start();
+        t.join();
+    }
 
-		RulesRepository repo = imp.getRepo();
+    private void assertContains(String string,
+                                String[] children) {
+        for ( int i = 0; i < children.length; i++ ) {
+            if ( children[i].equals( string ) ) {
+                return;
+            }
+        }
+        Assert.fail( "Array did not contain " + string );
+    }
 
-		repo.createPackageSnapshot("testDavSnapshot", "SNAP1");
-		repo.createPackageSnapshot("testDavSnapshot", "SNAP2");
+    static class TransactionMock
+        implements
+        ITransaction {
 
-		String[] packages = imp.getChildrenNames("/foo/webdav/snapshots");
-		assertTrue(packages.length > 0);
-		assertContains("testDavSnapshot", packages);
+        public Principal getPrincipal() {
+            return null;
+        }
 
-		String[] snaps = imp.getChildrenNames("/foo/webdav/snapshots/testDavSnapshot");
-		assertEquals(2, snaps.length);
+    }
 
-		assertEquals("SNAP1", snaps[0]);
-		assertEquals("SNAP2", snaps[1]);
-
-
-		String[] list = imp.getChildrenNames("/foo/webdav/snapshots/testDavSnapshot/SNAP1");
-		assertEquals(1, list.length);
-		assertEquals("Something.drl", list[0]);
-
-		list = imp.getChildrenNames("/foo/webdav/snapshots/testDavSnapshot/SNAP2");
-		assertEquals(1, list.length);
-		assertEquals("Something.drl", list[0]);
-
-		assertNotNull(imp.getCreationDate("/foo/webdav/snapshots"));
-		assertNotNull(imp.getCreationDate("/foo/webdav/snapshots/testDavSnapshot"));
-		assertNotNull(imp.getCreationDate("/foo/webdav/snapshots/testDavSnapshot/SNAP1"));
-		assertNotNull(imp.getCreationDate("/foo/webdav/snapshots/testDavSnapshot/SNAP1/Something.drl"));
-
-		assertNotNull(imp.getLastModified("/foo/webdav/snapshots"));
-		assertNotNull(imp.getLastModified("/foo/webdav/snapshots/testDavSnapshot"));
-		assertNotNull(imp.getLastModified("/foo/webdav/snapshots/testDavSnapshot/SNAP1"));
-		assertNotNull(imp.getLastModified("/foo/webdav/snapshots/testDavSnapshot/SNAP1/Something.drl"));
-
-		createFolderTry(imp, "/foo/webdav/snapshots/randomAss");
-		createFolderTry(imp, "/foo/webdav/snapshots/testDavSnapshot/SNAPX");
-		createFolderTry(imp, "/foo/webdav/snapshots/testDavSnapshot/SNAP1/Something.drl");
-		createFolderTry(imp, "/foo/webdav/snapshots/testDavSnapshot/SNAP1/Another.drl");
-
-		createResourceTry(imp, "/foo/webdav/snapshots/randomAss");
-		createResourceTry(imp, "/foo/webdav/snapshots/testDavSnapshot/SNAPX");
-		createResourceTry(imp, "/foo/webdav/snapshots/testDavSnapshot/SNAP1/Something.drl");
-		createResourceTry(imp, "/foo/webdav/snapshots/testDavSnapshot/SNAP1/Another.drl");
-
-
-		InputStream in = imp.getResourceContent("/foo/webdav/snapshots/testDavSnapshot/SNAP1/Something.drl");
-		assertEquals("some input", IOUtils.toString(in));
-
-
-		assertEquals(0, imp.getResourceLength("/foo/webdav/snapshots/testDavSnapshot/SNAP1"));
-		assertEquals("some input".getBytes().length, imp.getResourceLength("/foo/webdav/snapshots/testDavSnapshot/SNAP1/Something.drl"));
-
-
-		assertTrue(imp.isFolder("/foo/webdav/snapshots"));
-		assertTrue(imp.isFolder("/foo/webdav/snapshots/testDavSnapshot"));
-		assertTrue(imp.isFolder("/foo/webdav/snapshots/testDavSnapshot/SNAP2"));
-		assertFalse(imp.isFolder("/foo/webdav/snapshots/testDavSnapshot/SNAP2/Something.drl"));
-
-		assertFalse(imp.isResource("/foo/webdav/snapshots"));
-		assertFalse(imp.isResource("/foo/webdav/snapshots/testDavSnapshot"));
-		assertFalse(imp.isResource("/foo/webdav/snapshots/testDavSnapshot/SNAP2"));
-		assertTrue(imp.isResource("/foo/webdav/snapshots/testDavSnapshot/SNAP2/Something.drl"));
-
-		assertFalse(imp.isResource("/foo/webdav/snapshots/testDavSnapshot/SNAP2/DoesNotExist.drl"));
-
-		assertTrue(imp.objectExists("/foo/webdav/snapshots"));
-		assertFalse(imp.objectExists("/foo/webdav/snapshots/testDavSnapshotXX"));
-		assertTrue(imp.objectExists("/foo/webdav/snapshots/testDavSnapshot"));
-		assertTrue(imp.objectExists("/foo/webdav/snapshots/testDavSnapshot/SNAP1"));
-		assertFalse(imp.objectExists("/foo/webdav/snapshots/testDavSnapshot/SNAPX"));
-
-		assertFalse(imp.objectExists("/foo/webdav/snapshots/testDavSnapshot/SNAP1/Foo.drl"));
-		assertTrue(imp.objectExists("/foo/webdav/snapshots/testDavSnapshot/SNAP1/Something.drl"));
-
-		assertNull(imp.getChildrenNames("/foo/webdav/snapshots/testDavSnapshot/SNAP1/Something.drl"));
-
-		try {
-			imp.removeObject("/foo/webdav/snapshots/testDavSnapshot/SNAP1/Something.drl");
-			fail("Should not delete files from snapshots");
-		} catch (Exception e) {
-			assertNotNull(e.getMessage());
-		}
-
-		try {
-			imp.setResourceContent("/foo/webdav/snapshots/testDavSnapshot/SNAP1/Something.drl", null, null, null);
-			fail("should not be allowed to update content in snapshots.");
-		} catch (Exception e) {
-			assertNotNull(e.getMessage());
-		}
-
-		assertFalse(imp.objectExists("/foo/webdav/snapshots/defaultPackage/new file"));
-		try {
-			imp.createResource("/foo/webdav/snapshots/defaultPackage/new file");
-			fail("can't touch this");
-		} catch (UnsupportedOperationException e) {
-			assertNotNull(e.getMessage());
-		}
-	}
-
-	private void createResourceTry(WebDAVImpl imp, String path) {
-		try {
-			imp.createResource(path);
-			fail("Should not be allowed");
-		} catch (UnsupportedOperationException e) {
-			assertNotNull(e.getMessage());
-		}
-	}
-
-	private void createFolderTry(WebDAVImpl imp, String path) {
-		try {
-			imp.createFolder(path);
-			fail("should not be allowed");
-		} catch (UnsupportedOperationException e) {
-			assertNotNull(e.getMessage());
-		}
-	}
-
-	public void testThreadLocal() throws Exception {
-		Thread t = new Thread(new Runnable() {
-			public void run()  {
-				WebDAVImpl i = new WebDAVImpl();
-				assertNull(i.getRepo());
-				try {
-					i.begin(null);
-				} catch (Exception e) {
-					fail("should not happen");
-				}
-				assertNotNull(i.getRepo());
-			}
-		});
-		t.start();
-		t.join();
-	}
-
-
-	private void assertContains(String string, String[] children) {
-		for (int i = 0; i < children.length; i++) {
-			if (children[i].equals(string)) {
-				return;
-			}
-		}
-		Assert.fail("Array did not contain " + string);
-	}
-
-
 }



More information about the jboss-svn-commits mailing list